From c550d09d1d0ce9132ed51d38aa3764bf080ab290 Mon Sep 17 00:00:00 2001 From: Martin Stamm Date: Fri, 22 Apr 2022 11:17:51 +0200 Subject: [PATCH 001/989] fix(label-editing): remove label property on empty label closes #1637 --- lib/features/label-editing/cmd/UpdateLabelHandler.js | 2 +- test/spec/features/modeling/UpdateLabelSpec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/features/label-editing/cmd/UpdateLabelHandler.js b/lib/features/label-editing/cmd/UpdateLabelHandler.js index 35159c2a18..692da3d163 100644 --- a/lib/features/label-editing/cmd/UpdateLabelHandler.js +++ b/lib/features/label-editing/cmd/UpdateLabelHandler.js @@ -44,7 +44,7 @@ export default function UpdateLabelHandler(modeling, textRenderer, bpmnFactory) } if (!text && di.label) { - di.label = null; + delete di.label; } } diff --git a/test/spec/features/modeling/UpdateLabelSpec.js b/test/spec/features/modeling/UpdateLabelSpec.js index 7bbac540f2..a6cecb36a1 100644 --- a/test/spec/features/modeling/UpdateLabelSpec.js +++ b/test/spec/features/modeling/UpdateLabelSpec.js @@ -247,7 +247,7 @@ 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'); })); }); From 7d6792ef21d8110ee0584f549ac4cc14e0849792 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Mon, 25 Apr 2022 16:47:47 +0200 Subject: [PATCH 002/989] fix(replace): persist multi-instance props with `isSequential` change Closes #1581 --- .../popup-menu/ReplaceMenuProvider.js | 13 +++-- .../bpmn/draw/activity-markers-simple.bpmn | 10 +++- .../popup-menu/ReplaceMenuProviderSpec.js | 58 ++++++++++++++++++- 3 files changed, 72 insertions(+), 9 deletions(-) diff --git a/lib/features/popup-menu/ReplaceMenuProvider.js b/lib/features/popup-menu/ReplaceMenuProvider.js index 2aa238e499..aa30567dbe 100644 --- a/lib/features/popup-menu/ReplaceMenuProvider.js +++ b/lib/features/popup-menu/ReplaceMenuProvider.js @@ -14,7 +14,8 @@ import { import { forEach, - filter + filter, + isUndefined } from 'min-dash'; import * as replaceOptions from '../replace/ReplaceOptions'; @@ -426,16 +427,16 @@ ReplaceMenuProvider.prototype._getLoopEntries = function(element) { var translate = this._translate; function toggleLoopEntry(event, entry) { - var loopCharacteristics; + var loopCharacteristics = getBusinessObject(element).loopCharacteristics; if (entry.active) { loopCharacteristics = undefined; } else { - loopCharacteristics = self._moddle.create(entry.options.loopCharacteristics); - - if (entry.options.isSequential) { - loopCharacteristics.isSequential = entry.options.isSequential; + if (isUndefined(entry.options.isSequential) || !loopCharacteristics) { + loopCharacteristics = self._moddle.create(entry.options.loopCharacteristics); } + + loopCharacteristics.isSequential = entry.options.isSequential; } self._modeling.updateProperties(element, { loopCharacteristics: loopCharacteristics }); } diff --git a/test/fixtures/bpmn/draw/activity-markers-simple.bpmn b/test/fixtures/bpmn/draw/activity-markers-simple.bpmn index f2bd4c535c..a41615a1de 100644 --- a/test/fixtures/bpmn/draw/activity-markers-simple.bpmn +++ b/test/fixtures/bpmn/draw/activity-markers-simple.bpmn @@ -2,10 +2,16 @@ - + + foo + bar + - + + foo + bar + diff --git a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js index 328add9293..c40cd8a923 100644 --- a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js +++ b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js @@ -14,6 +14,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 +26,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 +286,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; @@ -500,6 +510,29 @@ describe('features/popup-menu - replace menu provider', function() { expect(domClasses(loopEntry).has('active')).to.be.false; })); + + it('should keep sequential properties', inject(function(elementRegistry) { + + // given + var task = elementRegistry.get('SequentialTask'), + businessObject = getBusinessObject(task), + loopCharacteristics = Object.assign({}, businessObject.loopCharacteristics); + + openPopup(task); + + // assume + expect(loopCharacteristics.isSequential).to.be.true; + + // when + triggerAction('toggle-parallel-mi'); + + // then + var newLoopCharacteristics = businessObject.loopCharacteristics; + + expect(newLoopCharacteristics.isSequential).to.be.false; + expect(omit(newLoopCharacteristics, 'isSequential')).to.eql(omit(loopCharacteristics, 'isSequential')); + })); + }); @@ -583,6 +616,29 @@ describe('features/popup-menu - replace menu provider', function() { expect(domClasses(parallelEntry).has('active')).to.be.false; })); + + it('should keep parallel properties', inject(function(elementRegistry) { + + // given + var task = elementRegistry.get('ParallelTask'), + businessObject = getBusinessObject(task), + loopCharacteristics = Object.assign({}, businessObject.loopCharacteristics); + + openPopup(task); + + // assume + expect(loopCharacteristics.isSequential).to.be.undefined; + + // when + triggerAction('toggle-sequential-mi'); + + // then + var newLoopCharacteristics = businessObject.loopCharacteristics; + + expect(newLoopCharacteristics.isSequential).to.be.true; + expect(omit(newLoopCharacteristics, 'isSequential')).to.eql(loopCharacteristics); + })); + }); From ed5f713a939376279da5ab0dae619fff314ce592 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 21 Feb 2022 09:40:01 +0100 Subject: [PATCH 003/989] chore(CHANGELOG): formatting updates --- CHANGELOG.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bcf343cdc..7da49a4892 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,20 +23,19 @@ ___Note:__ Yet to be released changes appear here._ * `FIX`: support DIs without associated business object ([#1605](https://github.com/bpmn-io/bpmn-js/pull/1605)) * `DEPS`: bump to `diagram-js@8.1.2` ([bdf9cf3](https://github.com/bpmn-io/bpmn-js/commit/bdf9cf3e752254a4c8172031d8a493955a9fca9c)) - ## 9.0.0 * `FEAT`: support drilldown and modeling of collapsed subprocesses ([#1443](https://github.com/bpmn-io/bpmn-js/issues/1443)) * `FEAT`: update embedded label bounds when shape is moved ([#1586](https://github.com/bpmn-io/bpmn-js/pull/1586)) * `FIX`: create di for embedded labels ([#1579](https://github.com/bpmn-io/bpmn-js/pull/1579)) * `CHORE`: expose `BpmnRenderer` extension points ([#1585](https://github.com/bpmn-io/bpmn-js/pull/1585)) -* `CHORE`: bump to `diagram-js@8.1.1` +* `DEPS`: bump to `diagram-js@8.1.1` ### Breaking Changes -* Reworked the link of elements to bpmn DIs. You must access the `di` directly from the diagram element instead of the `businessObject`. [#1472](https://github.com/bpmn-io/bpmn-js/issues/1472) -* Reworked `viewer.open` behavior for single planes. ([#1576](https://github.com/bpmn-io/bpmn-js/pull/1576)) -* Reworked import and `BpmnFactory` APIs. [#1472](https://github.com/bpmn-io/bpmn-js/issues/1472) +* Reworked the link of elements to bpmn DIs. You must access the `di` directly from the diagram element instead of the `businessObject` [#1472](https://github.com/bpmn-io/bpmn-js/issues/1472). +* Reworked `viewer.open` behavior for single planes ([#1576](https://github.com/bpmn-io/bpmn-js/pull/1576)). +* Reworked import and `BpmnFactory` APIs [#1472](https://github.com/bpmn-io/bpmn-js/issues/1472). * Added `bpmn-js.css`, which is required to display drilldown overlays correctly. ## 8.10.0 From 2674db30b5265cacbb8f520133adaaaa2a28ad36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Mar 2022 13:29:56 +0000 Subject: [PATCH 004/989] deps: bump karma from 6.3.14 to 6.3.16 Bumps [karma](https://github.com/karma-runner/karma) from 6.3.14 to 6.3.16. - [Release notes](https://github.com/karma-runner/karma/releases) - [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md) - [Commits](https://github.com/karma-runner/karma/compare/v6.3.14...v6.3.16) --- updated-dependencies: - dependency-name: karma dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 59 ++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index a954ef1c2f..fb55cb3e05 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2310,27 +2310,27 @@ "dev": true }, "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", "dev": true, "requires": { - "bytes": "3.1.1", + "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.6", - "raw-body": "2.4.2", + "qs": "6.9.7", + "raw-body": "2.4.3", "type-is": "~1.6.18" }, "dependencies": { "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", "dev": true } } @@ -2517,9 +2517,9 @@ "dev": true }, "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, "cacache": { @@ -3515,9 +3515,9 @@ } }, "engine.io": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz", - "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", + "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", "dev": true, "requires": { "@types/cookie": "^0.4.1", @@ -3528,7 +3528,7 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.0.0", + "engine.io-parser": "~5.0.3", "ws": "~8.2.3" }, "dependencies": { @@ -4854,9 +4854,9 @@ } }, "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", "dev": true }, "for-in": { @@ -6661,9 +6661,9 @@ "dev": true }, "karma": { - "version": "6.3.14", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.14.tgz", - "integrity": "sha512-SDFoU5F4LdosEiUVWUDRPCV/C1zQRNtIakx7rWkigf7R4sxGADlSEeOma4S1f/js7YAzvqLW92ByoiQptg+8oQ==", + "version": "6.3.16", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.16.tgz", + "integrity": "sha512-nEU50jLvDe5yvXqkEJRf8IuvddUkOY2x5Xc4WXHz6dxINgGDrgD2uqQWeVrJs4hbfNaotn+HQ1LZJ4yOXrL7xQ==", "dev": true, "requires": { "body-parser": "^1.19.0", @@ -6681,6 +6681,7 @@ "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", @@ -9167,12 +9168,12 @@ "dev": true }, "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", "dev": true, "requires": { - "bytes": "3.1.1", + "bytes": "3.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "unpipe": "1.0.0" @@ -10910,9 +10911,9 @@ } }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "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", From 01c8aa6f0edef0ba78d5058a0cf5d43c59dfab86 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sun, 3 Apr 2022 11:17:59 +0200 Subject: [PATCH 005/989] chore(tasks): update website with published time --- tasks/stages/update-website | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tasks/stages/update-website b/tasks/stages/update-website index ba0391ca7e..fc11e51924 100755 --- a/tasks/stages/update-website +++ b/tasks/stages/update-website @@ -16,9 +16,15 @@ git clone --depth=1 "https://$BPMN_IO_TOKEN@github.com/bpmn-io/bpmn.io.git" "$CL cd "$CLONE_DIR" -echo "Updating toolkit version to $TAG on bpmn.io" +PUBLISHED=`date +"%F %H:%M"` + +echo "Updating toolkit version to version=$TAG, published=$PUBLISHED on bpmn.io" + +cat src/data/site.yml | \ + tr "\r?\n" "\r" | \ + sed -e "s#bpmnjs:\r version: [^\r]*\r published: [^\r]*\r#bpmnjs:\r version: $TAG\r published: $PUBLISHED\r#" | \ + tr "\r" "\n" > src/data/site.yml_new -cat src/data/site.yml | tr "\r?\n" "\r" | sed -e "s#bpmnjs:\r version: [^\r]*\r#bpmnjs:\r version: $TAG\r#" | tr "\r" "\n" > src/data/site.yml_new mv -f src/data/site.yml_new src/data/site.yml if [[ "x$SKIP_COMMIT" = "x" ]]; then From e07ab829eecabd6a35293ea6188d40af8dd9e338 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Thu, 21 Apr 2022 16:27:15 +0200 Subject: [PATCH 006/989] fix(bpmn-replace): add CallActivity to SubProcessStartEvent behaviour Closes #1631 --- .../behavior/SubProcessStartEventBehavior.js | 2 +- .../SubProcessBehavior.start-event.bpmn | 4 ++ .../SubProcessStartEventBehaviorSpec.js | 50 +++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) diff --git a/lib/features/modeling/behavior/SubProcessStartEventBehavior.js b/lib/features/modeling/behavior/SubProcessStartEventBehavior.js index 0f1ca99ae2..ba115a2047 100644 --- a/lib/features/modeling/behavior/SubProcessStartEventBehavior.js +++ b/lib/features/modeling/behavior/SubProcessStartEventBehavior.js @@ -20,7 +20,7 @@ export default function SubProcessStartEventBehavior(injector, modeling) { if ( !is(newShape, 'bpmn:SubProcess') || - !is(oldShape, 'bpmn:Task') || + ! (is(oldShape, 'bpmn:Task') || is(oldShape, 'bpmn:CallActivity')) || !isExpanded(newShape) ) { return; diff --git a/test/spec/features/modeling/behavior/SubProcessBehavior.start-event.bpmn b/test/spec/features/modeling/behavior/SubProcessBehavior.start-event.bpmn index 25d99d994b..b61abbda3e 100644 --- a/test/spec/features/modeling/behavior/SubProcessBehavior.start-event.bpmn +++ b/test/spec/features/modeling/behavior/SubProcessBehavior.start-event.bpmn @@ -2,6 +2,7 @@ + @@ -9,6 +10,9 @@ + + + diff --git a/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js b/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js index 91f0589c74..f31938f2f0 100644 --- a/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js @@ -99,6 +99,56 @@ describe('features/modeling/behavior - subprocess start event', function() { }); + + describe('call activity -> expanded subprocess', function() { + + it('should add start event child to subprocess', inject( + function(elementRegistry, bpmnReplace) { + + // given + var callActivity = elementRegistry.get('CallActivity_1'), + expandedSubProcess, + startEvents; + + // when + expandedSubProcess = bpmnReplace.replaceElement(callActivity, { + type: 'bpmn:SubProcess', + isExpanded: true + }); + + // then + startEvents = getChildStartEvents(expandedSubProcess); + + expect(startEvents).to.have.length(1); + } + )); + + + it('should wire startEvent di correctly', inject( + function(elementRegistry, bpmnReplace) { + + // given + var callActivity = elementRegistry.get('CallActivity_1'), + expandedSubProcess, + startEvent, + startEventDi; + + // when + expandedSubProcess = bpmnReplace.replaceElement(callActivity, { + type: 'bpmn:SubProcess', + isExpanded: true + }); + + // then + startEvent = getChildStartEvents(expandedSubProcess)[0]; + startEventDi = getDi(startEvent); + + expect(startEventDi.$parent).to.exist; + } + )); + + }); + }); }); From 388746c3b3fd55634411606256b3de220081c202 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Mon, 25 Apr 2022 16:47:47 +0200 Subject: [PATCH 007/989] fix(replace): persist multi-instance props with `isSequential` change Closes #1581 --- .../popup-menu/ReplaceMenuProvider.js | 13 +++-- .../bpmn/draw/activity-markers-simple.bpmn | 10 +++- .../popup-menu/ReplaceMenuProviderSpec.js | 58 ++++++++++++++++++- 3 files changed, 72 insertions(+), 9 deletions(-) diff --git a/lib/features/popup-menu/ReplaceMenuProvider.js b/lib/features/popup-menu/ReplaceMenuProvider.js index 2aa238e499..aa30567dbe 100644 --- a/lib/features/popup-menu/ReplaceMenuProvider.js +++ b/lib/features/popup-menu/ReplaceMenuProvider.js @@ -14,7 +14,8 @@ import { import { forEach, - filter + filter, + isUndefined } from 'min-dash'; import * as replaceOptions from '../replace/ReplaceOptions'; @@ -426,16 +427,16 @@ ReplaceMenuProvider.prototype._getLoopEntries = function(element) { var translate = this._translate; function toggleLoopEntry(event, entry) { - var loopCharacteristics; + var loopCharacteristics = getBusinessObject(element).loopCharacteristics; if (entry.active) { loopCharacteristics = undefined; } else { - loopCharacteristics = self._moddle.create(entry.options.loopCharacteristics); - - if (entry.options.isSequential) { - loopCharacteristics.isSequential = entry.options.isSequential; + if (isUndefined(entry.options.isSequential) || !loopCharacteristics) { + loopCharacteristics = self._moddle.create(entry.options.loopCharacteristics); } + + loopCharacteristics.isSequential = entry.options.isSequential; } self._modeling.updateProperties(element, { loopCharacteristics: loopCharacteristics }); } diff --git a/test/fixtures/bpmn/draw/activity-markers-simple.bpmn b/test/fixtures/bpmn/draw/activity-markers-simple.bpmn index f2bd4c535c..a41615a1de 100644 --- a/test/fixtures/bpmn/draw/activity-markers-simple.bpmn +++ b/test/fixtures/bpmn/draw/activity-markers-simple.bpmn @@ -2,10 +2,16 @@ - + + foo + bar + - + + foo + bar + diff --git a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js index 328add9293..c40cd8a923 100644 --- a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js +++ b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js @@ -14,6 +14,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 +26,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 +286,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; @@ -500,6 +510,29 @@ describe('features/popup-menu - replace menu provider', function() { expect(domClasses(loopEntry).has('active')).to.be.false; })); + + it('should keep sequential properties', inject(function(elementRegistry) { + + // given + var task = elementRegistry.get('SequentialTask'), + businessObject = getBusinessObject(task), + loopCharacteristics = Object.assign({}, businessObject.loopCharacteristics); + + openPopup(task); + + // assume + expect(loopCharacteristics.isSequential).to.be.true; + + // when + triggerAction('toggle-parallel-mi'); + + // then + var newLoopCharacteristics = businessObject.loopCharacteristics; + + expect(newLoopCharacteristics.isSequential).to.be.false; + expect(omit(newLoopCharacteristics, 'isSequential')).to.eql(omit(loopCharacteristics, 'isSequential')); + })); + }); @@ -583,6 +616,29 @@ describe('features/popup-menu - replace menu provider', function() { expect(domClasses(parallelEntry).has('active')).to.be.false; })); + + it('should keep parallel properties', inject(function(elementRegistry) { + + // given + var task = elementRegistry.get('ParallelTask'), + businessObject = getBusinessObject(task), + loopCharacteristics = Object.assign({}, businessObject.loopCharacteristics); + + openPopup(task); + + // assume + expect(loopCharacteristics.isSequential).to.be.undefined; + + // when + triggerAction('toggle-sequential-mi'); + + // then + var newLoopCharacteristics = businessObject.loopCharacteristics; + + expect(newLoopCharacteristics.isSequential).to.be.true; + expect(omit(newLoopCharacteristics, 'isSequential')).to.eql(loopCharacteristics); + })); + }); From 742fba68a68eb6edc0b67689f31a6e9814e2d85d Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 11 May 2022 15:55:15 +0200 Subject: [PATCH 008/989] chore(CHANGELOG): update to v9.0.4 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7da49a4892..baf7f37c3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,15 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 9.0.4 + +* `FIX`: remove `label` property on empty label ([#1637](https://github.com/bpmn-io/bpmn-js/issues/1637)) +* `FIX`: create drilldown overlays on `viewer.open` ([`574a67438`](https://github.com/bpmn-io/bpmn-js/commit/574a674381d6449b509396b6d17c4ca94674ea1c)) +* `FIX`: render data association inside collapsed sub-processes ([#1619](https://github.com/bpmn-io/bpmn-js/issues/1619)) +* `FIX`: preserve multi-instance properties when toggling between parallel and sequential ([#1581](https://github.com/bpmn-io/bpmn-js/issues/1581)) +* `FIX`: correct hanging sequence flow label after collapsing sub-process ([#1617](https://github.com/bpmn-io/bpmn-js/issues/1617)) +* `FIX`: correct start event not added to newly created sub-process ([#1631](https://github.com/bpmn-io/bpmn-js/issues/1631)) + ## 9.0.3 * `FIX`: submit direct editing result on drilldown ([#1609](https://github.com/bpmn-io/bpmn-js/issues/1609)) From 9b1096abbc5e141cb24437ee1d489b9ceba22a1f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 13 May 2022 13:00:34 +0200 Subject: [PATCH 009/989] 9.0.4 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index fb55cb3e05..7633ecb88d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.0.3", + "version": "9.0.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index a00a3d7b58..19dfe9ec4a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.0.3", + "version": "9.0.4", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 011f394d0515399720d825fb3780e4a4b1f477e8 Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 17 May 2022 14:43:02 +0200 Subject: [PATCH 010/989] fix: complete direct editing on selection changed Related to https://github.com/camunda/camunda-modeler/issues/2961 --- .../label-editing/LabelEditingProvider.js | 3 ++- .../label-editing/LabelEditingProviderSpec.js | 24 +++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/lib/features/label-editing/LabelEditingProvider.js b/lib/features/label-editing/LabelEditingProvider.js index 54c31cd503..3aea069a92 100644 --- a/lib/features/label-editing/LabelEditingProvider.js +++ b/lib/features/label-editing/LabelEditingProvider.js @@ -49,7 +49,8 @@ export default function LabelEditingProvider( 'drag.init', 'element.mousedown', 'popupMenu.open', - 'root.set' + 'root.set', + 'selection.changed' ], function(event) { if (directEditing.isActive()) { diff --git a/test/spec/features/label-editing/LabelEditingProviderSpec.js b/test/spec/features/label-editing/LabelEditingProviderSpec.js index e4e26ac8e1..5d99cec34f 100644 --- a/test/spec/features/label-editing/LabelEditingProviderSpec.js +++ b/test/spec/features/label-editing/LabelEditingProviderSpec.js @@ -127,7 +127,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 +156,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 +183,26 @@ 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'); + } + )); + }); From a4e21db31f33e39aa0d20b135f79899601ae9444 Mon Sep 17 00:00:00 2001 From: Martin Stamm Date: Mon, 16 May 2022 16:44:25 +0200 Subject: [PATCH 011/989] deps: bump dependencies - diagram-js@8.2.2 - min-dom@3.2.0 --- package-lock.json | 23 ++++++++++++----------- package.json | 4 ++-- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7633ecb88d..e8da4e69e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3333,16 +3333,16 @@ "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==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.2.2.tgz", + "integrity": "sha512-oWNMCifIStXn89+G4l+ydfWy3p3dtAvvoO1vVieiCUPjUXwi/s1LEcgw6F6dYCUpwKvZJq4Da0i3dJKNJ8I9yg==", "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", + "min-dom": "^3.2.0", "object-refs": "^0.3.0", "path-intersection": "^2.2.1", "tiny-svg": "^2.2.2" @@ -3432,9 +3432,9 @@ "dev": true }, "domify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.0.tgz", - "integrity": "sha1-EUg2F/dk+GlZdbS9x5sU8IA7Yps=" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.1.tgz", + "integrity": "sha512-x18nuiDHMCZGXr4KJSRMf/TWYtiaRo6RX8KN9fEbW54mvbQ6pieUuerC2ahBg+kEp1wycFj8MPUI0WkIOw5E9w==" }, "duplexer": { "version": "0.1.1", @@ -7365,14 +7365,15 @@ "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==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.0.tgz", + "integrity": "sha512-IUNBVNMFR0fND5RM2rBPqTG/qch8SOWtxpNgc2L+yHqp8raz3tEoe9SfXObHuidyLSMrbF7gSnBPrFGaUHBnHg==", "requires": { "component-event": "^0.1.4", "domify": "^1.3.1", "indexof": "0.0.1", - "matches-selector": "^1.2.0" + "matches-selector": "^1.2.0", + "min-dash": "^3.8.1" } }, "minimalistic-assert": { diff --git a/package.json b/package.json index 19dfe9ec4a..5d2dfe92c7 100644 --- a/package.json +++ b/package.json @@ -100,12 +100,12 @@ "dependencies": { "bpmn-moddle": "^7.1.2", "css.escape": "^1.5.1", - "diagram-js": "^8.2.0", + "diagram-js": "^8.2.2", "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", + "min-dom": "^3.2.0", "object-refs": "^0.3.0", "tiny-svg": "^2.2.2" } From 1c89624a4238234eba3d75a413d3acf82212c1f8 Mon Sep 17 00:00:00 2001 From: Martin Stamm Date: Mon, 16 May 2022 16:52:52 +0200 Subject: [PATCH 012/989] fix: comply with style-src CSP --- lib/BaseViewer.js | 16 ++++-- lib/util/PoweredByUtil.js | 103 ++++++++++++++++++++++---------------- 2 files changed, 72 insertions(+), 47 deletions(-) diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index d727c31e3d..d56084728c 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -13,6 +13,7 @@ import { import { domify, + assignStyle, query as domQuery, remove as domRemove } from 'min-dom'; @@ -655,7 +656,7 @@ BaseViewer.prototype._createContainer = function(options) { var container = domify('
'); - assign(container.style, { + assignStyle(container, { width: ensureUnit(options.width), height: ensureUnit(options.height), position: options.position @@ -735,7 +736,8 @@ function findBPMNDiagram(definitions, diagramId) { import { open as openPoweredBy, BPMNIO_IMG, - LINK_STYLES as BPMNIO_LINK_STYLES + LOGO_STYLES, + LINK_STYLES } from './util/PoweredByUtil'; import { @@ -758,12 +760,20 @@ function addProjectLogo(container) { 'target="_blank" ' + 'class="bjs-powered-by" ' + 'title="Powered by bpmn.io" ' + - 'style="position: absolute; bottom: 15px; right: 15px; z-index: 100; ' + BPMNIO_LINK_STYLES + '">' + + '>' + img + ''; var linkElement = domify(linkMarkup); + assignStyle(domQuery('svg', linkElement), LOGO_STYLES); + assignStyle(linkElement, LINK_STYLES, { + position: 'absolute', + bottom: '15px', + right: '15px', + zIndex: '100' + }); + container.appendChild(linkElement); domEvent.bind(linkElement, 'click', function(event) { diff --git a/lib/util/PoweredByUtil.js b/lib/util/PoweredByUtil.js index f1d1994d8e..5a541a803f 100644 --- a/lib/util/PoweredByUtil.js +++ b/lib/util/PoweredByUtil.js @@ -5,59 +5,61 @@ */ import { + assignStyle, domify, - delegate as domDelegate + delegate as domDelegate, + query as domQuery } from 'min-dom'; // inlined ../../resources/logo.svg -var BPMNIO_LOGO_SVG = ''; +var BPMNIO_LOGO_SVG = ''; export var BPMNIO_IMG = BPMNIO_LOGO_SVG; -function css(attrs) { - return attrs.join(';'); -} - -export var LINK_STYLES = css([ - 'color: #404040' -]); - -var LIGHTBOX_STYLES = css([ - 'z-index: 1001', - 'position: fixed', - 'top: 0', - 'left: 0', - 'right: 0', - 'bottom: 0' -]); - -var BACKDROP_STYLES = css([ - 'width: 100%', - 'height: 100%', - 'background: rgba(40,40,40,0.2)' -]); - -var NOTICE_STYLES = css([ - 'position: absolute', - 'left: 50%', - 'top: 40%', - 'transform: translate(-50%)', - 'width: 260px', - 'padding: 10px', - 'background: white', - 'box-shadow: 0 1px 4px rgba(0,0,0,0.3)', - 'font-family: Helvetica, Arial, sans-serif', - 'font-size: 14px', - 'display: flex', - 'line-height: 1.3' -]); +export var LOGO_STYLES = { + verticalAlign: 'middle' +}; + +export var LINK_STYLES = { + 'color': '#404040' +}; + +var LIGHTBOX_STYLES = { + 'zIndex': '1001', + 'position': 'fixed', + 'top': '0', + 'left': '0', + 'right': '0', + 'bottom': '0' +}; + +var BACKDROP_STYLES = { + 'width': '100%', + 'height': '100%', + 'background': 'rgba(40,40,40,0.2)' +}; + +var NOTICE_STYLES = { + 'position': 'absolute', + 'left': '50%', + 'top': '40%', + 'transform': 'translate(-50%)', + 'width': '260px', + 'padding': '10px', + 'background': 'white', + 'boxShadow': '0 1px 4px rgba(0,0,0,0.3)', + 'fontFamily': 'Helvetica, Arial, sans-serif', + 'fontSize': '14px', + 'display': 'flex', + 'lineHeight': '1.3' +}; var LIGHTBOX_MARKUP = - '
' + - '
' + - '
' + - '' + + '
' + + '
' + + '
' + + '' + BPMNIO_IMG + '' + '' + @@ -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); From 29941e63a4a0606a8dec1dde28c455f138b89d7c Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Wed, 18 May 2022 09:39:09 +0200 Subject: [PATCH 013/989] deps: update to diagram-js@8.3.0 --- package-lock.json | 20 +++++++++++++++++--- package.json | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index e8da4e69e7..5a44d7c20a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3333,9 +3333,9 @@ "dev": true }, "diagram-js": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.2.2.tgz", - "integrity": "sha512-oWNMCifIStXn89+G4l+ydfWy3p3dtAvvoO1vVieiCUPjUXwi/s1LEcgw6F6dYCUpwKvZJq4Da0i3dJKNJ8I9yg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.3.0.tgz", + "integrity": "sha512-J7/yb/25+eDj5THpgGW7SQdBUYLplELHvvl4kUOwgTNH/fQMzZ9Xdt/WGHhfBM37TFuIL+cbcdcUgSpJGSOlWQ==", "requires": { "css.escape": "^1.5.1", "didi": "^5.2.1", @@ -3346,6 +3346,20 @@ "object-refs": "^0.3.0", "path-intersection": "^2.2.1", "tiny-svg": "^2.2.2" + }, + "dependencies": { + "min-dom": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.0.tgz", + "integrity": "sha512-IUNBVNMFR0fND5RM2rBPqTG/qch8SOWtxpNgc2L+yHqp8raz3tEoe9SfXObHuidyLSMrbF7gSnBPrFGaUHBnHg==", + "requires": { + "component-event": "^0.1.4", + "domify": "^1.3.1", + "indexof": "0.0.1", + "matches-selector": "^1.2.0", + "min-dash": "^3.8.1" + } + } } }, "diagram-js-direct-editing": { diff --git a/package.json b/package.json index 5d2dfe92c7..86dc023439 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "dependencies": { "bpmn-moddle": "^7.1.2", "css.escape": "^1.5.1", - "diagram-js": "^8.2.2", + "diagram-js": "^8.3.0", "diagram-js-direct-editing": "^1.6.3", "ids": "^1.0.0", "inherits": "^2.0.4", From 1b7ce15d2e04a44622d0e506bd51e88e61cd9b17 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Mon, 16 May 2022 09:39:28 +0200 Subject: [PATCH 014/989] feat: select participant by click but not move Related to https://github.com/camunda/camunda-modeler/issues/2859 --- .../interaction-events/BpmnInteractionEvents.js | 12 ++++++++++++ .../interaction-events/BpmnInteractionEventsSpec.js | 10 +++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/lib/features/interaction-events/BpmnInteractionEvents.js b/lib/features/interaction-events/BpmnInteractionEvents.js index ada086e8e8..e4f09d6e29 100644 --- a/lib/features/interaction-events/BpmnInteractionEvents.js +++ b/lib/features/interaction-events/BpmnInteractionEvents.js @@ -68,6 +68,12 @@ BpmnInteractionEvents.prototype.createParticipantHit = function(element, gfx) { // remove existing hits this._interactionEvents.removeHits(gfx); + // add body hit + this._interactionEvents.createBoxHit(gfx, 'no-move', { + width: element.width, + height: element.height + }); + // add outline hit this._interactionEvents.createBoxHit(gfx, 'click-stroke', { width: element.width, @@ -89,6 +95,12 @@ BpmnInteractionEvents.prototype.createSubProcessHit = function(element, gfx) { // remove existing hits this._interactionEvents.removeHits(gfx); + // add body hit + this._interactionEvents.createBoxHit(gfx, 'no-move', { + width: element.width, + height: element.height + }); + // add outline hit this._interactionEvents.createBoxHit(gfx, 'click-stroke', { width: element.width, diff --git a/test/spec/features/interaction-events/BpmnInteractionEventsSpec.js b/test/spec/features/interaction-events/BpmnInteractionEventsSpec.js index 360cdcdec8..33a0994635 100644 --- a/test/spec/features/interaction-events/BpmnInteractionEventsSpec.js +++ b/test/spec/features/interaction-events/BpmnInteractionEventsSpec.js @@ -25,6 +25,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,7 +43,7 @@ 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'); @@ -50,10 +51,11 @@ describe('features/interaction-events', function() { // then expectToHaveChildren(HIT_ALL_CLS, 1, participant); expectToHaveChildren(HIT_CLICK_STROKE_CLS, 1, participant); + expectToHaveChildren(HIT_NO_MOVE_CLS, 1, participant); })); - 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'); @@ -61,6 +63,7 @@ describe('features/interaction-events', function() { // then expectToHaveChildren(HIT_ALL_CLS, 1, lane); expectToHaveChildren(HIT_CLICK_STROKE_CLS, 1, lane); + expectToHaveChildren(HIT_NO_MOVE_CLS, 1, lane); })); @@ -98,7 +101,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 +109,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); })); From 5783a9573f98d3c6468676c8ab283dd7d61d5041 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Wed, 18 May 2022 10:40:47 +0200 Subject: [PATCH 015/989] chore(CHANGELOG): update to v9.1.0 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index baf7f37c3f..8fbe02429e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 9.1.0 + +* `FEAT`: allow to select participant and subprocess via click on body ([#1646](https://github.com/bpmn-io/bpmn-js/pull/1646)) +* `FIX`: comply with strict style-src CSP ([#1625](https://github.com/bpmn-io/bpmn-js/issues/1625)) +* `FIX`: complete direct editing when selection changes ([#1648](https://github.com/bpmn-io/bpmn-js/pull/1648)) +* `DEPS`: update to `diagram-js@8.3.0` +* `DEPS`: update to `min-dom@3.2.0` + ## 9.0.4 * `FIX`: remove `label` property on empty label ([#1637](https://github.com/bpmn-io/bpmn-js/issues/1637)) From f63fe8d616e5b410423ac0a6a699d9389c490d2b Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Wed, 18 May 2022 11:07:32 +0200 Subject: [PATCH 016/989] 9.1.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5a44d7c20a..622b23de84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.0.4", + "version": "9.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 86dc023439..cb1ead4c05 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.0.4", + "version": "9.1.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 7478388070d83e8802c873e8480dbf23ae3ace3a Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 6 Apr 2022 21:38:27 +0200 Subject: [PATCH 017/989] deps: replace inherits with inherits-browser This increase the safety of our build; external consumers do no longer need to account for the `browser` field to bundle bpmn-js (or otherwise bundle a Node shim, unintentionally). --- lib/BaseModeler.js | 2 +- lib/BaseViewer.js | 2 +- lib/Modeler.js | 2 +- lib/NavigatedViewer.js | 2 +- lib/Viewer.js | 2 +- lib/draw/BpmnRenderer.js | 2 +- lib/features/auto-resize/BpmnAutoResize.js | 2 +- lib/features/auto-resize/BpmnAutoResizeProvider.js | 2 +- lib/features/drilldown/DrilldownOverlayBehavior.js | 2 +- lib/features/editor-actions/BpmnEditorActions.js | 2 +- .../grid-snapping/behavior/LayoutConnectionBehavior.js | 2 +- lib/features/keyboard/BpmnKeyboardBindings.js | 2 +- lib/features/modeling/BpmnLayouter.js | 2 +- lib/features/modeling/BpmnUpdater.js | 2 +- lib/features/modeling/ElementFactory.js | 2 +- lib/features/modeling/Modeling.js | 2 +- .../modeling/behavior/AdaptiveLabelPositioningBehavior.js | 2 +- lib/features/modeling/behavior/AppendBehavior.js | 2 +- lib/features/modeling/behavior/AssociationBehavior.js | 2 +- lib/features/modeling/behavior/AttachEventBehavior.js | 2 +- lib/features/modeling/behavior/BoundaryEventBehavior.js | 2 +- lib/features/modeling/behavior/CreateBehavior.js | 2 +- .../modeling/behavior/CreateDataObjectBehavior.js | 2 +- .../modeling/behavior/CreateParticipantBehavior.js | 2 +- .../modeling/behavior/DataInputAssociationBehavior.js | 2 +- lib/features/modeling/behavior/DataStoreBehavior.js | 2 +- lib/features/modeling/behavior/DeleteLaneBehavior.js | 2 +- lib/features/modeling/behavior/DetachEventBehavior.js | 2 +- lib/features/modeling/behavior/DropOnFlowBehavior.js | 2 +- .../modeling/behavior/EventBasedGatewayBehavior.js | 2 +- lib/features/modeling/behavior/GroupBehavior.js | 2 +- lib/features/modeling/behavior/IsHorizontalFix.js | 2 +- lib/features/modeling/behavior/LabelBehavior.js | 2 +- lib/features/modeling/behavior/MessageFlowBehavior.js | 2 +- lib/features/modeling/behavior/RemoveElementBehavior.js | 2 +- .../behavior/RemoveEmbeddedLabelBoundsBehavior.js | 2 +- .../modeling/behavior/RemoveParticipantBehavior.js | 2 +- .../modeling/behavior/ReplaceConnectionBehavior.js | 2 +- lib/features/modeling/behavior/ReplaceElementBehaviour.js | 2 +- .../modeling/behavior/RootElementReferenceBehavior.js | 2 +- lib/features/modeling/behavior/SubProcessPlaneBehavior.js | 2 +- .../modeling/behavior/SubProcessStartEventBehavior.js | 2 +- .../behavior/ToggleCollapseConnectionBehaviour.js | 2 +- .../modeling/behavior/ToggleElementCollapseBehaviour.js | 2 +- lib/features/modeling/behavior/UnclaimIdBehavior.js | 2 +- .../modeling/behavior/UnsetDefaultFlowBehavior.js | 2 +- .../modeling/behavior/UpdateFlowNodeRefsBehavior.js | 2 +- lib/features/ordering/BpmnOrderingProvider.js | 2 +- lib/features/replace-preview/BpmnReplacePreview.js | 2 +- lib/features/rules/BpmnRules.js | 2 +- lib/features/snapping/BpmnCreateMoveSnapping.js | 2 +- package-lock.json | 7 ++++++- package.json | 2 +- rollup.config.js | 8 +------- test/config/karma.unit.js | 1 - test/integration/custom-elements/CustomElementFactory.js | 2 +- test/integration/custom-elements/CustomRenderer.js | 2 +- test/integration/custom-elements/CustomRules.js | 2 +- test/integration/custom-elements/CustomUpdater.js | 2 +- test/spec/ViewerSpec.js | 2 +- .../features/modeling/LoggingCroppingConnectionDocking.js | 2 +- test/util/custom-rules/CustomRules.js | 2 +- 62 files changed, 66 insertions(+), 68 deletions(-) diff --git a/lib/BaseModeler.js b/lib/BaseModeler.js index 4d242a05ac..474c00e1af 100644 --- a/lib/BaseModeler.js +++ b/lib/BaseModeler.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import Ids from 'ids'; diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index d56084728c..c34d927e2d 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -25,7 +25,7 @@ import { import Diagram from 'diagram-js'; import BpmnModdle from 'bpmn-moddle'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { importBpmnDiagram diff --git a/lib/Modeler.js b/lib/Modeler.js index b0ec29d847..717232ba98 100644 --- a/lib/Modeler.js +++ b/lib/Modeler.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import BaseModeler from './BaseModeler'; diff --git a/lib/NavigatedViewer.js b/lib/NavigatedViewer.js index 592f59dc34..7da2ded2ce 100644 --- a/lib/NavigatedViewer.js +++ b/lib/NavigatedViewer.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import Viewer from './Viewer'; diff --git a/lib/Viewer.js b/lib/Viewer.js index 27a81bde38..ac4a1db8bb 100644 --- a/lib/Viewer.js +++ b/lib/Viewer.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CoreModule from './core'; import TranslateModule from 'diagram-js/lib/i18n/translate'; diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index ee9bb64947..936446b167 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { isObject, diff --git a/lib/features/auto-resize/BpmnAutoResize.js b/lib/features/auto-resize/BpmnAutoResize.js index e518728e5e..fce4c5fa46 100644 --- a/lib/features/auto-resize/BpmnAutoResize.js +++ b/lib/features/auto-resize/BpmnAutoResize.js @@ -1,6 +1,6 @@ import AutoResize from 'diagram-js/lib/features/auto-resize/AutoResize'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { is } from '../../util/ModelUtil'; diff --git a/lib/features/auto-resize/BpmnAutoResizeProvider.js b/lib/features/auto-resize/BpmnAutoResizeProvider.js index 721b08101a..7f23105db8 100644 --- a/lib/features/auto-resize/BpmnAutoResizeProvider.js +++ b/lib/features/auto-resize/BpmnAutoResizeProvider.js @@ -1,6 +1,6 @@ import { is } from '../../util/ModelUtil'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { forEach } from 'min-dash'; diff --git a/lib/features/drilldown/DrilldownOverlayBehavior.js b/lib/features/drilldown/DrilldownOverlayBehavior.js index 738e9e21f3..7fd6d0d276 100644 --- a/lib/features/drilldown/DrilldownOverlayBehavior.js +++ b/lib/features/drilldown/DrilldownOverlayBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { is } from '../../util/ModelUtil'; diff --git a/lib/features/editor-actions/BpmnEditorActions.js b/lib/features/editor-actions/BpmnEditorActions.js index b558588473..c15b408053 100644 --- a/lib/features/editor-actions/BpmnEditorActions.js +++ b/lib/features/editor-actions/BpmnEditorActions.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import EditorActions from 'diagram-js/lib/features/editor-actions/EditorActions'; diff --git a/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js b/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js index 828ddb3022..df8001f25e 100644 --- a/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js +++ b/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/keyboard/BpmnKeyboardBindings.js b/lib/features/keyboard/BpmnKeyboardBindings.js index fc940ff764..f85a5132f6 100644 --- a/lib/features/keyboard/BpmnKeyboardBindings.js +++ b/lib/features/keyboard/BpmnKeyboardBindings.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import KeyboardBindings from 'diagram-js/lib/features/keyboard/KeyboardBindings'; diff --git a/lib/features/modeling/BpmnLayouter.js b/lib/features/modeling/BpmnLayouter.js index 9cbbb78c23..0f5d769f54 100644 --- a/lib/features/modeling/BpmnLayouter.js +++ b/lib/features/modeling/BpmnLayouter.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { assign diff --git a/lib/features/modeling/BpmnUpdater.js b/lib/features/modeling/BpmnUpdater.js index 65a0e0c4d1..6eb8ba4955 100644 --- a/lib/features/modeling/BpmnUpdater.js +++ b/lib/features/modeling/BpmnUpdater.js @@ -3,7 +3,7 @@ import { forEach } from 'min-dash'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { remove as collectionRemove, diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index 8f4c9ff4e5..195f8a3793 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -4,7 +4,7 @@ import { isObject } from 'min-dash'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { getBusinessObject, diff --git a/lib/features/modeling/Modeling.js b/lib/features/modeling/Modeling.js index 0c7619e64c..c2888d738b 100644 --- a/lib/features/modeling/Modeling.js +++ b/lib/features/modeling/Modeling.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import BaseModeling from 'diagram-js/lib/features/modeling/Modeling'; diff --git a/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js b/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js index b56820db7d..be5245237f 100644 --- a/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js +++ b/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { getOrientation, diff --git a/lib/features/modeling/behavior/AppendBehavior.js b/lib/features/modeling/behavior/AppendBehavior.js index b569f56b41..ffafd571eb 100644 --- a/lib/features/modeling/behavior/AppendBehavior.js +++ b/lib/features/modeling/behavior/AppendBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { is } from '../../../util/ModelUtil'; diff --git a/lib/features/modeling/behavior/AssociationBehavior.js b/lib/features/modeling/behavior/AssociationBehavior.js index ee68f68a74..d86c4d2746 100644 --- a/lib/features/modeling/behavior/AssociationBehavior.js +++ b/lib/features/modeling/behavior/AssociationBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { is } from '../../../util/ModelUtil'; diff --git a/lib/features/modeling/behavior/AttachEventBehavior.js b/lib/features/modeling/behavior/AttachEventBehavior.js index 22107901f4..f089fbd8a8 100644 --- a/lib/features/modeling/behavior/AttachEventBehavior.js +++ b/lib/features/modeling/behavior/AttachEventBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/BoundaryEventBehavior.js b/lib/features/modeling/behavior/BoundaryEventBehavior.js index 00984b14ec..4a07408983 100644 --- a/lib/features/modeling/behavior/BoundaryEventBehavior.js +++ b/lib/features/modeling/behavior/BoundaryEventBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/CreateBehavior.js b/lib/features/modeling/behavior/CreateBehavior.js index b32471a072..98aaaed542 100644 --- a/lib/features/modeling/behavior/CreateBehavior.js +++ b/lib/features/modeling/behavior/CreateBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { is } from '../../../util/ModelUtil'; diff --git a/lib/features/modeling/behavior/CreateDataObjectBehavior.js b/lib/features/modeling/behavior/CreateDataObjectBehavior.js index 57532feb90..b0387f0a67 100644 --- a/lib/features/modeling/behavior/CreateDataObjectBehavior.js +++ b/lib/features/modeling/behavior/CreateDataObjectBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/CreateParticipantBehavior.js b/lib/features/modeling/behavior/CreateParticipantBehavior.js index 8e3e01509b..296c4d36bc 100644 --- a/lib/features/modeling/behavior/CreateParticipantBehavior.js +++ b/lib/features/modeling/behavior/CreateParticipantBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/DataInputAssociationBehavior.js b/lib/features/modeling/behavior/DataInputAssociationBehavior.js index eae529a04a..f0e6a5d264 100644 --- a/lib/features/modeling/behavior/DataInputAssociationBehavior.js +++ b/lib/features/modeling/behavior/DataInputAssociationBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/DataStoreBehavior.js b/lib/features/modeling/behavior/DataStoreBehavior.js index c6643e7c8e..5f2af46206 100644 --- a/lib/features/modeling/behavior/DataStoreBehavior.js +++ b/lib/features/modeling/behavior/DataStoreBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/DeleteLaneBehavior.js b/lib/features/modeling/behavior/DeleteLaneBehavior.js index 53bd506aeb..0e617e4e85 100644 --- a/lib/features/modeling/behavior/DeleteLaneBehavior.js +++ b/lib/features/modeling/behavior/DeleteLaneBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/DetachEventBehavior.js b/lib/features/modeling/behavior/DetachEventBehavior.js index ae64a63615..b5f4452df5 100644 --- a/lib/features/modeling/behavior/DetachEventBehavior.js +++ b/lib/features/modeling/behavior/DetachEventBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/DropOnFlowBehavior.js b/lib/features/modeling/behavior/DropOnFlowBehavior.js index b30c7ba7f9..35f600877a 100644 --- a/lib/features/modeling/behavior/DropOnFlowBehavior.js +++ b/lib/features/modeling/behavior/DropOnFlowBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { assign, diff --git a/lib/features/modeling/behavior/EventBasedGatewayBehavior.js b/lib/features/modeling/behavior/EventBasedGatewayBehavior.js index 8d6b4b9469..503dfa1923 100644 --- a/lib/features/modeling/behavior/EventBasedGatewayBehavior.js +++ b/lib/features/modeling/behavior/EventBasedGatewayBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/GroupBehavior.js b/lib/features/modeling/behavior/GroupBehavior.js index fd43293b50..3067f9b39b 100644 --- a/lib/features/modeling/behavior/GroupBehavior.js +++ b/lib/features/modeling/behavior/GroupBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/IsHorizontalFix.js b/lib/features/modeling/behavior/IsHorizontalFix.js index 7a5ebbb633..25fcc6519f 100644 --- a/lib/features/modeling/behavior/IsHorizontalFix.js +++ b/lib/features/modeling/behavior/IsHorizontalFix.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/LabelBehavior.js b/lib/features/modeling/behavior/LabelBehavior.js index b56cf07e48..28a789739b 100644 --- a/lib/features/modeling/behavior/LabelBehavior.js +++ b/lib/features/modeling/behavior/LabelBehavior.js @@ -2,7 +2,7 @@ import { assign } from 'min-dash'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { is, diff --git a/lib/features/modeling/behavior/MessageFlowBehavior.js b/lib/features/modeling/behavior/MessageFlowBehavior.js index 44f52f5cdf..d797723297 100644 --- a/lib/features/modeling/behavior/MessageFlowBehavior.js +++ b/lib/features/modeling/behavior/MessageFlowBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/RemoveElementBehavior.js b/lib/features/modeling/behavior/RemoveElementBehavior.js index b22a3b890c..0fb06f26a3 100644 --- a/lib/features/modeling/behavior/RemoveElementBehavior.js +++ b/lib/features/modeling/behavior/RemoveElementBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { is } from '../../../util/ModelUtil'; diff --git a/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js b/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js index 72baf55d59..d91996aee2 100644 --- a/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js +++ b/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/RemoveParticipantBehavior.js b/lib/features/modeling/behavior/RemoveParticipantBehavior.js index 60ce6780bf..500df2274e 100644 --- a/lib/features/modeling/behavior/RemoveParticipantBehavior.js +++ b/lib/features/modeling/behavior/RemoveParticipantBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/ReplaceConnectionBehavior.js b/lib/features/modeling/behavior/ReplaceConnectionBehavior.js index e3681230be..99fa22bdb2 100644 --- a/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +++ b/lib/features/modeling/behavior/ReplaceConnectionBehavior.js @@ -4,7 +4,7 @@ import { matchPattern } from 'min-dash'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/ReplaceElementBehaviour.js b/lib/features/modeling/behavior/ReplaceElementBehaviour.js index ecd3a3785f..d15445afd1 100644 --- a/lib/features/modeling/behavior/ReplaceElementBehaviour.js +++ b/lib/features/modeling/behavior/ReplaceElementBehaviour.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { forEach } from 'min-dash'; diff --git a/lib/features/modeling/behavior/RootElementReferenceBehavior.js b/lib/features/modeling/behavior/RootElementReferenceBehavior.js index 316acfe4d3..3ff5500df9 100644 --- a/lib/features/modeling/behavior/RootElementReferenceBehavior.js +++ b/lib/features/modeling/behavior/RootElementReferenceBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { find, diff --git a/lib/features/modeling/behavior/SubProcessPlaneBehavior.js b/lib/features/modeling/behavior/SubProcessPlaneBehavior.js index f519d5ea0b..497acfccd0 100644 --- a/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +++ b/lib/features/modeling/behavior/SubProcessPlaneBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/SubProcessStartEventBehavior.js b/lib/features/modeling/behavior/SubProcessStartEventBehavior.js index ba115a2047..e4c1720e42 100644 --- a/lib/features/modeling/behavior/SubProcessStartEventBehavior.js +++ b/lib/features/modeling/behavior/SubProcessStartEventBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js b/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js index b1cb182d77..b677617e3c 100644 --- a/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js +++ b/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js @@ -1,5 +1,5 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js b/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js index c0393ad6ab..55f259fb9b 100644 --- a/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js +++ b/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/UnclaimIdBehavior.js b/lib/features/modeling/behavior/UnclaimIdBehavior.js index 49493fe4d3..ffafb878f5 100644 --- a/lib/features/modeling/behavior/UnclaimIdBehavior.js +++ b/lib/features/modeling/behavior/UnclaimIdBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js b/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js index 9c6f1be402..18da9c7b01 100644 --- a/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js +++ b/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js b/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js index b5d30832a1..7f9ea5c967 100644 --- a/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js +++ b/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; diff --git a/lib/features/ordering/BpmnOrderingProvider.js b/lib/features/ordering/BpmnOrderingProvider.js index f302172f2b..c6ee052228 100644 --- a/lib/features/ordering/BpmnOrderingProvider.js +++ b/lib/features/ordering/BpmnOrderingProvider.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import OrderingProvider from 'diagram-js/lib/features/ordering/OrderingProvider'; diff --git a/lib/features/replace-preview/BpmnReplacePreview.js b/lib/features/replace-preview/BpmnReplacePreview.js index af7060bd20..92f6c457aa 100644 --- a/lib/features/replace-preview/BpmnReplacePreview.js +++ b/lib/features/replace-preview/BpmnReplacePreview.js @@ -1,6 +1,6 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import cssEscape from 'css.escape'; diff --git a/lib/features/rules/BpmnRules.js b/lib/features/rules/BpmnRules.js index 19ec96d107..47c8dcd20d 100644 --- a/lib/features/rules/BpmnRules.js +++ b/lib/features/rules/BpmnRules.js @@ -5,7 +5,7 @@ import { some } from 'min-dash'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { is, diff --git a/lib/features/snapping/BpmnCreateMoveSnapping.js b/lib/features/snapping/BpmnCreateMoveSnapping.js index 5319bcf152..a36a248120 100644 --- a/lib/features/snapping/BpmnCreateMoveSnapping.js +++ b/lib/features/snapping/BpmnCreateMoveSnapping.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CreateMoveSnapping from 'diagram-js/lib/features/snapping/CreateMoveSnapping'; diff --git a/package-lock.json b/package-lock.json index 622b23de84..ec3565cbc0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5997,6 +5997,11 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "inherits-browser": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.0.1.tgz", + "integrity": "sha512-kaDA3DkCdCpvrKIo/1T/3yVn+qpFUHLjYtSHmTYewb+QfjfaQy6FGQ7LwBu7st0tG9UvYad/XAlqQmdIh6CICw==" + }, "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", @@ -6627,7 +6632,7 @@ }, "json5": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, diff --git a/package.json b/package.json index cb1ead4c05..302d24ab43 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "diagram-js": "^8.3.0", "diagram-js-direct-editing": "^1.6.3", "ids": "^1.0.0", - "inherits": "^2.0.4", + "inherits-browser": "0.0.1", "min-dash": "^3.5.2", "min-dom": "^3.2.0", "object-refs": "^0.3.0", diff --git a/rollup.config.js b/rollup.config.js index 91df1e83bd..b4ec94d615 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -97,13 +97,7 @@ function pgl(plugins=[], env='production') { replace({ 'process.env.NODE_ENV': JSON.stringify(env) }), - nodeResolve({ - mainFields: [ - 'browser', - 'module', - 'main' - ] - }), + nodeResolve(), commonjs(), json(), ...plugins diff --git a/test/config/karma.unit.js b/test/config/karma.unit.js index ccacecd489..8f9ac4a55d 100644 --- a/test/config/karma.unit.js +++ b/test/config/karma.unit.js @@ -83,7 +83,6 @@ module.exports = function(karma) { resolve: { mainFields: [ 'dev:module', - 'browser', 'module', 'main' ], diff --git a/test/integration/custom-elements/CustomElementFactory.js b/test/integration/custom-elements/CustomElementFactory.js index c31ceacf22..a7d159c89e 100644 --- a/test/integration/custom-elements/CustomElementFactory.js +++ b/test/integration/custom-elements/CustomElementFactory.js @@ -2,7 +2,7 @@ import { assign } from 'min-dash'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import BpmnElementFactory from 'lib/features/modeling/ElementFactory'; diff --git a/test/integration/custom-elements/CustomRenderer.js b/test/integration/custom-elements/CustomRenderer.js index 7e1964bd30..d8d50c7eab 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'; 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/spec/ViewerSpec.js b/test/spec/ViewerSpec.js index 7ff615eab7..2dfcf564bf 100644 --- a/test/spec/ViewerSpec.js +++ b/test/spec/ViewerSpec.js @@ -6,7 +6,7 @@ import ViewerDefaultExport from '../../'; import Viewer from 'lib/Viewer'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import { createViewer 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/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'; From 5eaf74e91b563fe8719bc80a0bd8473a674a31b3 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Thu, 19 May 2022 20:23:05 +0200 Subject: [PATCH 018/989] fix(modeling): use stroke color for labels when setting color (#1655) Closes #1653 --- lib/features/modeling/cmd/SetColorHandler.js | 8 ++++++-- test/fixtures/bpmn/simple.bpmn | 6 ++++++ test/spec/features/modeling/SetColorSpec.js | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/features/modeling/cmd/SetColorHandler.js b/lib/features/modeling/cmd/SetColorHandler.js index 9d853a0b71..5b670863c8 100644 --- a/lib/features/modeling/cmd/SetColorHandler.js +++ b/lib/features/modeling/cmd/SetColorHandler.js @@ -9,6 +9,10 @@ import { getDi } from '../../../util/ModelUtil'; +import { + isLabel +} from '../../../util/LabelUtil'; + var DEFAULT_COLORS = { fill: undefined, stroke: undefined @@ -66,14 +70,14 @@ SetColorHandler.prototype.postExecute = function(context) { // TODO @barmac: remove once we drop bpmn.io properties ensureLegacySupport(assignedDi); - if (element.labelTarget) { + if (isLabel(element)) { // set label colors as bpmndi:BPMNLabel#color self._commandStack.execute('element.updateModdleProperties', { element: element, moddleElement: getDi(element).label, properties: { - color: di['background-color'] + color: di['border-color'] } }); } else { 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/spec/features/modeling/SetColorSpec.js b/test/spec/features/modeling/SetColorSpec.js index edcf476116..2bcaebc2c3 100644 --- a/test/spec/features/modeling/SetColorSpec.js +++ b/test/spec/features/modeling/SetColorSpec.js @@ -152,13 +152,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); })); From 4ccf488a9faf4b8e683ae9d88403e3b7e2ed4783 Mon Sep 17 00:00:00 2001 From: Niklas Kiefer Date: Tue, 23 Nov 2021 15:57:26 +0100 Subject: [PATCH 019/989] fix(moddle-copy): primitive arrays cloning Closes https://github.com/bpmn-io/bpmn-js/issues/1518 --- lib/features/copy-paste/ModdleCopy.js | 2 -- test/fixtures/json/model/custom.json | 5 +++ .../features/copy-paste/ModdleCopySpec.js | 34 +++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/lib/features/copy-paste/ModdleCopy.js b/lib/features/copy-paste/ModdleCopy.js index 0c51ee2247..51e67a7714 100644 --- a/lib/features/copy-paste/ModdleCopy.js +++ b/lib/features/copy-paste/ModdleCopy.js @@ -234,8 +234,6 @@ ModdleCopy.prototype.copyProperty = function(property, parent, propertyName) { // copying might NOT be allowed if (copiedProperty) { - copiedProperty.$parent = parent; - return childProperties.concat(copiedProperty); } 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/spec/features/copy-paste/ModdleCopySpec.js b/test/spec/features/copy-paste/ModdleCopySpec.js index 3b2c5f3828..4fa2a0c174 100644 --- a/test/spec/features/copy-paste/ModdleCopySpec.js +++ b/test/spec/features/copy-paste/ModdleCopySpec.js @@ -781,6 +781,40 @@ describe('features/copy-paste/ModdleCopy', function() { }); + + 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); + })); + + }); + }); From b3db78cbfe22d9e5637f69e4ff77cbe7662cf5f1 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 19 May 2022 16:12:38 +0200 Subject: [PATCH 020/989] feat: change default black to off black Related to https://github.com/bpmn-io/diagram-js/issues/571 --- lib/draw/BpmnRenderUtil.js | 4 +++- lib/draw/BpmnRenderer.js | 18 ++++++++++-------- test/spec/draw/BpmnRendererSpec.js | 2 +- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/draw/BpmnRenderUtil.js b/lib/draw/BpmnRenderUtil.js index 0bc24091ad..5f5391d864 100644 --- a/lib/draw/BpmnRenderUtil.js +++ b/lib/draw/BpmnRenderUtil.js @@ -14,6 +14,8 @@ import { // re-export getDi for compatibility export { getDi }; +export var black = 'hsl(225, 10%, 15%)'; + // element utils ////////////////////// /** @@ -64,7 +66,7 @@ export function getFillColor(element, defaultColor) { export function getStrokeColor(element, defaultColor) { var di = getDi(element); - return di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || 'black'; + return di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || black; } export function getLabelColor(element, defaultColor, defaultStrokeColor) { diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index 936446b167..c94219230c 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -57,6 +57,8 @@ import { import Ids from 'ids'; +import { black } from './BpmnRenderUtil'; + var RENDERER_IDS = new Ids(); var TASK_BORDER_RADIUS = 10; @@ -85,7 +87,7 @@ export default function BpmnRenderer( function addMarker(id, options) { var attrs = assign({ - fill: 'black', + fill: black, strokeWidth: 1, strokeLinecap: 'round', strokeDasharray: 'none' @@ -264,7 +266,7 @@ export default function BpmnRenderer( offset = offset || 0; attrs = computeStyle(attrs, { - stroke: 'black', + stroke: black, strokeWidth: 2, fill: 'white' }); @@ -299,7 +301,7 @@ export default function BpmnRenderer( offset = offset || 0; attrs = computeStyle(attrs, { - stroke: 'black', + stroke: black, strokeWidth: 2, fill: 'white' }); @@ -332,7 +334,7 @@ export default function BpmnRenderer( }).join(' '); attrs = computeStyle(attrs, { - stroke: 'black', + stroke: black, strokeWidth: 2, fill: 'white' }); @@ -350,7 +352,7 @@ export default function BpmnRenderer( function drawLine(parentGfx, waypoints, attrs) { attrs = computeStyle(attrs, [ 'no-fill' ], { - stroke: 'black', + stroke: black, strokeWidth: 2, fill: 'none' }); @@ -366,7 +368,7 @@ export default function BpmnRenderer( attrs = computeStyle(attrs, [ 'no-fill' ], { strokeWidth: 2, - stroke: 'black' + stroke: black }); var path = svgCreate('path'); @@ -1471,7 +1473,7 @@ export default function BpmnRenderer( if (di.messageVisibleKind === 'initiating') { messageAttrs.fill = 'white'; - messageAttrs.stroke = 'black'; + messageAttrs.stroke = black; } else { messageAttrs.fill = '#888'; messageAttrs.stroke = 'white'; @@ -1546,7 +1548,7 @@ export default function BpmnRenderer( /* output arrow path */ drawPath(parentGfx, arrowPathData, { strokeWidth: 1, - fill: 'black' + fill: black }); return elementObject; diff --git a/test/spec/draw/BpmnRendererSpec.js b/test/spec/draw/BpmnRendererSpec.js index e6548dbc30..406f8097a1 100644 --- a/test/spec/draw/BpmnRendererSpec.js +++ b/test/spec/draw/BpmnRendererSpec.js @@ -333,7 +333,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(/^sequenceflow-end-white-hsl_225_10_15_-[A-Za-z0-9]+$/); })(); }); }); From 82c117b9820c28d0ee9f70fbfd8a58fec79624e9 Mon Sep 17 00:00:00 2001 From: Martin Stamm Date: Wed, 18 May 2022 14:14:55 +0200 Subject: [PATCH 021/989] feat: allow TextAnnotation for SequenceFlows --- lib/features/auto-place/BpmnAutoPlaceUtil.js | 10 +++ .../context-pad/ContextPadProvider.js | 9 +++ lib/features/rules/BpmnRules.js | 5 -- .../features/auto-place/BpmnAutoPlace.bpmn | 8 +-- .../features/auto-place/BpmnAutoPlaceSpec.js | 18 ++++++ .../context-pad/ContextPad.activation.bpmn | 63 +++++++++++-------- .../context-pad/ContextPadProviderSpec.js | 11 ++++ test/spec/features/rules/BpmnRulesSpec.js | 11 ++++ 8 files changed, 101 insertions(+), 34 deletions(-) diff --git a/lib/features/auto-place/BpmnAutoPlaceUtil.js b/lib/features/auto-place/BpmnAutoPlaceUtil.js index bb7343ecad..c815eee8db 100644 --- a/lib/features/auto-place/BpmnAutoPlaceUtil.js +++ b/lib/features/auto-place/BpmnAutoPlaceUtil.js @@ -104,6 +104,12 @@ export function getTextAnnotationPosition(source, element) { y: sourceTrbl.top - 50 - element.height / 2 }; + if (isConnection(source)) { + position = getMid(source); + position.x += 100; + position.y -= 50; + } + var nextPositionDirection = { y: { margin: -30, @@ -135,4 +141,8 @@ export function getDataElementPosition(source, element) { }; return findFreePosition(source, element, position, generateGetNextPosition(nextPositionDirection)); +} + +function isConnection(element) { + return !!element.waypoints; } \ No newline at end of file diff --git a/lib/features/context-pad/ContextPadProvider.js b/lib/features/context-pad/ContextPadProvider.js index 80b0491320..2d2f4a1fcf 100644 --- a/lib/features/context-pad/ContextPadProvider.js +++ b/lib/features/context-pad/ContextPadProvider.js @@ -362,6 +362,15 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { }); } + if (is(businessObject, 'bpmn:SequenceFlow')) { + assign(actions, { + 'append.text-annotation': appendAction( + 'bpmn:TextAnnotation', + 'bpmn-icon-text-annotation' + ) + }); + } + if ( isAny(businessObject, [ 'bpmn:FlowNode', diff --git a/lib/features/rules/BpmnRules.js b/lib/features/rules/BpmnRules.js index 47c8dcd20d..a2a0009110 100644 --- a/lib/features/rules/BpmnRules.js +++ b/lib/features/rules/BpmnRules.js @@ -819,11 +819,6 @@ function isOneTextAnnotation(source, target) { function canConnectAssociation(source, target) { - // do not connect connections - if (isConnection(source) || isConnection(target)) { - return false; - } - // compensation boundary events are exception if (isCompensationBoundary(source) && isForCompensation(target)) { return true; diff --git a/test/spec/features/auto-place/BpmnAutoPlace.bpmn b/test/spec/features/auto-place/BpmnAutoPlace.bpmn index 459e67f6b3..1a07f9f41b 100644 --- a/test/spec/features/auto-place/BpmnAutoPlace.bpmn +++ b/test/spec/features/auto-place/BpmnAutoPlace.bpmn @@ -11,16 +11,16 @@ SequenceFlow_0s1mty3 - SequenceFlow_0b5s2a7 + SequenceFlow_1 SequenceFlow_0s1mty3 - SequenceFlow_0b5s2a7 + SequenceFlow_1 - + SequenceFlow_18dnq8n @@ -95,7 +95,7 @@ - + diff --git a/test/spec/features/auto-place/BpmnAutoPlaceSpec.js b/test/spec/features/auto-place/BpmnAutoPlaceSpec.js index a672802e12..70bdac02a1 100644 --- a/test/spec/features/auto-place/BpmnAutoPlaceSpec.js +++ b/test/spec/features/auto-place/BpmnAutoPlaceSpec.js @@ -107,6 +107,24 @@ describe('features/auto-place', function() { expectedBounds: { x: 696, y: -4, width: 100, height: 30 } })); + + describe('on connection', function() { + + it('top right', autoPlace({ + element: 'bpmn:TextAnnotation', + behind: 'SequenceFlow_1', + expectedBounds: { x: 300, y: 158, width: 100, height: 30 } + })); + + + it('above existing', autoPlace({ + element: 'bpmn:TextAnnotation', + behind: 'SequenceFlow_1', + expectedBounds: { x: 300, y: 98, width: 100, height: 30 } + })); + + }); + }); }); diff --git a/test/spec/features/context-pad/ContextPad.activation.bpmn b/test/spec/features/context-pad/ContextPad.activation.bpmn index fdf19b8947..011758fc08 100644 --- a/test/spec/features/context-pad/ContextPad.activation.bpmn +++ b/test/spec/features/context-pad/ContextPad.activation.bpmn @@ -1,16 +1,22 @@ - + - - - - + + + SequenceFlow_1 + + + - + - - + + + + SequenceFlow_1 + + simple text annotation @@ -21,44 +27,51 @@ + + + + - + - + - + + + + - + - + - - - - - - - + - + - + - + + + + - + - + + + + diff --git a/test/spec/features/context-pad/ContextPadProviderSpec.js b/test/spec/features/context-pad/ContextPadProviderSpec.js index 24a622124b..2ea5ce3194 100644 --- a/test/spec/features/context-pad/ContextPadProviderSpec.js +++ b/test/spec/features/context-pad/ContextPadProviderSpec.js @@ -302,6 +302,17 @@ describe('features - context-pad', function() { ]); })); + + it('should provide SequenceFlow entries', inject(function() { + + expectContextPadEntries('SequenceFlow_1', [ + 'append.text-annotation', + 'delete', + 'replace', + '!connect' + ]); + })); + }); diff --git a/test/spec/features/rules/BpmnRulesSpec.js b/test/spec/features/rules/BpmnRulesSpec.js index 6647aa4e8e..cd0812e9cf 100644 --- a/test/spec/features/rules/BpmnRulesSpec.js +++ b/test/spec/features/rules/BpmnRulesSpec.js @@ -250,6 +250,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', { From 9c357f4cbd15329a5415eb14a862e2942e6ee36c Mon Sep 17 00:00:00 2001 From: Martin Stamm Date: Wed, 18 May 2022 13:58:03 +0200 Subject: [PATCH 022/989] chore: restructure LabelLayoutUtil --- .../modeling/behavior/util/LabelLayoutUtil.js | 195 +-------------- .../modeling/behavior/util/LayoutUtil.js | 233 ++++++++++++++++++ 2 files changed, 236 insertions(+), 192 deletions(-) create mode 100644 lib/features/modeling/behavior/util/LayoutUtil.js diff --git a/lib/features/modeling/behavior/util/LabelLayoutUtil.js b/lib/features/modeling/behavior/util/LabelLayoutUtil.js index 43a50a07ec..8b925d7897 100644 --- a/lib/features/modeling/behavior/util/LabelLayoutUtil.js +++ b/lib/features/modeling/behavior/util/LabelLayoutUtil.js @@ -1,95 +1,7 @@ -import { - getDistancePointPoint, - rotateVector, - getAngle -} from './GeometricUtil'; - -import { - getAttachment -} from './LineAttachmentUtil'; - -import { - roundPoint -} from 'diagram-js/lib/layout/LayoutUtil'; - +import { findNewLineStartIndex, getAnchorPointAdjustment } from './LayoutUtil'; export function findNewLabelLineStartIndex(oldWaypoints, newWaypoints, attachment, hints) { - - var index = attachment.segmentIndex; - - var offset = newWaypoints.length - oldWaypoints.length; - - // segmentMove happened - if (hints.segmentMove) { - - var oldSegmentStartIndex = hints.segmentMove.segmentStartIndex, - newSegmentStartIndex = hints.segmentMove.newSegmentStartIndex; - - // if label was on moved segment return new segment index - if (index === oldSegmentStartIndex) { - return newSegmentStartIndex; - } - - // label is after new segment index - if (index >= newSegmentStartIndex) { - return (index+offset < newSegmentStartIndex) ? newSegmentStartIndex : index+offset; - } - - // if label is before new segment index - return index; - } - - // bendpointMove happened - if (hints.bendpointMove) { - - var insert = hints.bendpointMove.insert, - bendpointIndex = hints.bendpointMove.bendpointIndex, - newIndex; - - // waypoints length didnt change - if (offset === 0) { - return index; - } - - // label behind new/removed bendpoint - if (index >= bendpointIndex) { - newIndex = insert ? index + 1 : index - 1; - } - - // label before new/removed bendpoint - if (index < bendpointIndex) { - - newIndex = index; - - // decide label should take right or left segment - if (insert && attachment.type !== 'bendpoint' && bendpointIndex-1 === index) { - - var rel = relativePositionMidWaypoint(newWaypoints, bendpointIndex); - - if (rel < attachment.relativeLocation) { - newIndex++; - } - } - } - - return newIndex; - } - - // start/end changed - if (offset === 0) { - return index; - } - - if (hints.connectionStart) { - return (index === 0) ? 0 : null; - } - - if (hints.connectionEnd) { - return (index === oldWaypoints.length - 2) ? newWaypoints.length - 2 : null; - } - - // if nothing fits, return null - return null; + return findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hints); } @@ -105,118 +17,17 @@ export function findNewLabelLineStartIndex(oldWaypoints, newWaypoints, attachmen * @return {Point} delta */ export function getLabelAdjustment(label, newWaypoints, oldWaypoints, hints) { - - var x = 0, - y = 0; - var labelPosition = getLabelMid(label); - // get closest attachment - var attachment = getAttachment(labelPosition, oldWaypoints), - oldLabelLineIndex = attachment.segmentIndex, - newLabelLineIndex = findNewLabelLineStartIndex(oldWaypoints, newWaypoints, attachment, hints); - - if (newLabelLineIndex === null) { - return { x: x, y: y }; - } - - // should never happen - // TODO(@janstuemmel): throw an error here when connectionSegmentMove is refactored - if (newLabelLineIndex < 0 || - newLabelLineIndex > newWaypoints.length - 2) { - return { x: x, y: y }; - } - - var oldLabelLine = getLine(oldWaypoints, oldLabelLineIndex), - newLabelLine = getLine(newWaypoints, newLabelLineIndex), - oldFoot = attachment.position; - - var relativeFootPosition = getRelativeFootPosition(oldLabelLine, oldFoot), - angleDelta = getAngleDelta(oldLabelLine, newLabelLine); - - // special rule if label on bendpoint - if (attachment.type === 'bendpoint') { - - var offset = newWaypoints.length - oldWaypoints.length, - oldBendpointIndex = attachment.bendpointIndex, - oldBendpoint = oldWaypoints[oldBendpointIndex]; - - // bendpoint position hasn't changed, return same position - if (newWaypoints.indexOf(oldBendpoint) !== -1) { - return { x: x, y: y }; - } - - // new bendpoint and old bendpoint have same index, then just return the offset - if (offset === 0) { - var newBendpoint = newWaypoints[oldBendpointIndex]; - - return { - x: newBendpoint.x - attachment.position.x, - y: newBendpoint.y - attachment.position.y - }; - } - - // if bendpoints get removed - if (offset < 0 && oldBendpointIndex !== 0 && oldBendpointIndex < oldWaypoints.length - 1) { - relativeFootPosition = relativePositionMidWaypoint(oldWaypoints, oldBendpointIndex); - } - } - - var newFoot = { - x: (newLabelLine[1].x - newLabelLine[0].x) * relativeFootPosition + newLabelLine[0].x, - y: (newLabelLine[1].y - newLabelLine[0].y) * relativeFootPosition + newLabelLine[0].y - }; - - // the rotated vector to label - var newLabelVector = rotateVector({ - x: labelPosition.x - oldFoot.x, - y: labelPosition.y - oldFoot.y - }, angleDelta); - - // the new relative position - x = newFoot.x + newLabelVector.x - labelPosition.x; - y = newFoot.y + newLabelVector.y - labelPosition.y; - - return roundPoint({ - x: x, - y: y - }); + return getAnchorPointAdjustment(labelPosition, newWaypoints, oldWaypoints, hints).delta; } // HELPERS ////////////////////// -function relativePositionMidWaypoint(waypoints, idx) { - - var distanceSegment1 = getDistancePointPoint(waypoints[idx-1], waypoints[idx]), - distanceSegment2 = getDistancePointPoint(waypoints[idx], waypoints[idx+1]); - - var relativePosition = distanceSegment1 / (distanceSegment1 + distanceSegment2); - - return relativePosition; -} - function getLabelMid(label) { return { x: label.x + label.width / 2, y: label.y + label.height / 2 }; } - -function getAngleDelta(l1, l2) { - var a1 = getAngle(l1), - a2 = getAngle(l2); - return a2 - a1; -} - -function getLine(waypoints, idx) { - return [ waypoints[idx], waypoints[idx+1] ]; -} - -function getRelativeFootPosition(line, foot) { - - var length = getDistancePointPoint(line[0], line[1]), - lengthToFoot = getDistancePointPoint(line[0], foot); - - return length === 0 ? 0 : lengthToFoot / length; -} diff --git a/lib/features/modeling/behavior/util/LayoutUtil.js b/lib/features/modeling/behavior/util/LayoutUtil.js new file mode 100644 index 0000000000..477c2c98a6 --- /dev/null +++ b/lib/features/modeling/behavior/util/LayoutUtil.js @@ -0,0 +1,233 @@ +import { + getDistancePointPoint, + rotateVector, + getAngle +} from './GeometricUtil'; + +import { + getAttachment +} from './LineAttachmentUtil'; + +import { + roundPoint +} from 'diagram-js/lib/layout/LayoutUtil'; + + +export function findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hints) { + + var index = attachment.segmentIndex; + + var offset = newWaypoints.length - oldWaypoints.length; + + // segmentMove happened + if (hints.segmentMove) { + + var oldSegmentStartIndex = hints.segmentMove.segmentStartIndex, + newSegmentStartIndex = hints.segmentMove.newSegmentStartIndex; + + // if point was on moved segment return new segment index + if (index === oldSegmentStartIndex) { + return newSegmentStartIndex; + } + + // point is after new segment index + if (index >= newSegmentStartIndex) { + return (index+offset < newSegmentStartIndex) ? newSegmentStartIndex : index+offset; + } + + // if point is before new segment index + return index; + } + + // bendpointMove happened + if (hints.bendpointMove) { + + var insert = hints.bendpointMove.insert, + bendpointIndex = hints.bendpointMove.bendpointIndex, + newIndex; + + // waypoints length didnt change + if (offset === 0) { + return index; + } + + // point behind new/removed bendpoint + if (index >= bendpointIndex) { + newIndex = insert ? index + 1 : index - 1; + } + + // point before new/removed bendpoint + if (index < bendpointIndex) { + + newIndex = index; + + // decide point should take right or left segment + if (insert && attachment.type !== 'bendpoint' && bendpointIndex-1 === index) { + + var rel = relativePositionMidWaypoint(newWaypoints, bendpointIndex); + + if (rel < attachment.relativeLocation) { + newIndex++; + } + } + } + + return newIndex; + } + + // start/end changed + if (offset === 0) { + return index; + } + + if (hints.connectionStart) { + return (index === 0) ? 0 : null; + } + + if (hints.connectionEnd) { + return (index === oldWaypoints.length - 2) ? newWaypoints.length - 2 : null; + } + + // if nothing fits, return null + return null; +} + + +/** + * Calculate the required adjustment (move delta) for the given point + * after the connection waypoints got updated. + * + * @param {Point} position + * @param {Array} newWaypoints + * @param {Array} oldWaypoints + * @param {Object} hints + * + * @return {Object} result + * @return {Point} result.point + * @return {Point} result.delta + */ +export function getAnchorPointAdjustment(position, newWaypoints, oldWaypoints, hints) { + + var dx = 0, + dy = 0; + + var oldPosition = { + point: position, + delta: { x: 0, y: 0 } + }; + + // get closest attachment + var attachment = getAttachment(position, oldWaypoints), + oldLabelLineIndex = attachment.segmentIndex, + newLabelLineIndex = findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hints); + + if (newLabelLineIndex === null) { + return oldPosition; + } + + // should never happen + // TODO(@janstuemmel): throw an error here when connectionSegmentMove is refactored + if (newLabelLineIndex < 0 || + newLabelLineIndex > newWaypoints.length - 2) { + + return oldPosition; + } + + var oldLabelLine = getLine(oldWaypoints, oldLabelLineIndex), + newLabelLine = getLine(newWaypoints, newLabelLineIndex), + oldFoot = attachment.position; + + var relativeFootPosition = getRelativeFootPosition(oldLabelLine, oldFoot), + angleDelta = getAngleDelta(oldLabelLine, newLabelLine); + + // special rule if label on bendpoint + if (attachment.type === 'bendpoint') { + + var offset = newWaypoints.length - oldWaypoints.length, + oldBendpointIndex = attachment.bendpointIndex, + oldBendpoint = oldWaypoints[oldBendpointIndex]; + + // bendpoint position hasn't changed, return same position + if (newWaypoints.indexOf(oldBendpoint) !== -1) { + return oldPosition; + } + + // new bendpoint and old bendpoint have same index, then just return the offset + if (offset === 0) { + var newBendpoint = newWaypoints[oldBendpointIndex]; + + dx = newBendpoint.x - attachment.position.x, + dy = newBendpoint.y - attachment.position.y; + + return { + delta: { + x: dx, + y: dy + }, + point: { + x: position.x + dx, + y: position.y + dy + } + }; + } + + // if bendpoints get removed + if (offset < 0 && oldBendpointIndex !== 0 && oldBendpointIndex < oldWaypoints.length - 1) { + relativeFootPosition = relativePositionMidWaypoint(oldWaypoints, oldBendpointIndex); + } + } + + var newFoot = { + x: (newLabelLine[1].x - newLabelLine[0].x) * relativeFootPosition + newLabelLine[0].x, + y: (newLabelLine[1].y - newLabelLine[0].y) * relativeFootPosition + newLabelLine[0].y + }; + + // the rotated vector to label + var newLabelVector = rotateVector({ + x: position.x - oldFoot.x, + y: position.y - oldFoot.y + }, angleDelta); + + // the new relative position + dx = newFoot.x + newLabelVector.x - position.x; + dy = newFoot.y + newLabelVector.y - position.y; + + return { + point: roundPoint(newFoot), + delta: roundPoint({ + x: dx, + y: dy + }) + }; +} + + +// HELPERS ////////////////////// + +function relativePositionMidWaypoint(waypoints, idx) { + + var distanceSegment1 = getDistancePointPoint(waypoints[idx-1], waypoints[idx]), + distanceSegment2 = getDistancePointPoint(waypoints[idx], waypoints[idx+1]); + + var relativePosition = distanceSegment1 / (distanceSegment1 + distanceSegment2); + + return relativePosition; +} + +function getAngleDelta(l1, l2) { + var a1 = getAngle(l1), + a2 = getAngle(l2); + return a2 - a1; +} + +function getLine(waypoints, idx) { + return [ waypoints[idx], waypoints[idx+1] ]; +} + +function getRelativeFootPosition(line, foot) { + + var length = getDistancePointPoint(line[0], line[1]), + lengthToFoot = getDistancePointPoint(line[0], foot); + + return length === 0 ? 0 : lengthToFoot / length; +} From 759b6c60bbcbd9f48247bffcdd9d4374d6f3a8e3 Mon Sep 17 00:00:00 2001 From: Martin Stamm Date: Wed, 18 May 2022 16:04:32 +0200 Subject: [PATCH 023/989] feat(modeling): update associations on connection change --- .../behavior/LayoutConnectionBehavior.js | 117 +++++++++++++ lib/features/modeling/behavior/index.js | 3 + .../behavior/util/ConnectionLayoutUtil.js | 16 ++ .../behavior/LayoutConnectionBehavior.bpmn | 49 ++++++ .../behavior/LayoutConnectionBehaviorSpec.js | 165 ++++++++++++++++++ 5 files changed, 350 insertions(+) create mode 100644 lib/features/modeling/behavior/LayoutConnectionBehavior.js create mode 100644 lib/features/modeling/behavior/util/ConnectionLayoutUtil.js create mode 100644 test/spec/features/modeling/behavior/LayoutConnectionBehavior.bpmn create mode 100644 test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js diff --git a/lib/features/modeling/behavior/LayoutConnectionBehavior.js b/lib/features/modeling/behavior/LayoutConnectionBehavior.js new file mode 100644 index 0000000000..b43d552391 --- /dev/null +++ b/lib/features/modeling/behavior/LayoutConnectionBehavior.js @@ -0,0 +1,117 @@ +import { + assign +} from 'min-dash'; + +import inherits from 'inherits'; + +import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; + +import { getConnectionAdjustment as getConnectionAnchorPoint } from './util/ConnectionLayoutUtil'; + +/** + * A component that makes sure that Associations connected to Connections + * are updated together with the Connection. + * + * @param {EventBus} eventBus + * @param {Modeling} modeling + */ +export default function LayoutConnectionBehavior( + eventBus, modeling) { + + CommandInterceptor.call(this, eventBus); + + function getnewAnchorPoint(event, point) { + + var context = event.context, + connection = context.connection, + hints = assign({}, context.hints), + newWaypoints = context.newWaypoints || connection.waypoints, + oldWaypoints = context.oldWaypoints; + + + if (typeof hints.startChanged === 'undefined') { + hints.startChanged = !!hints.connectionStart; + } + + if (typeof hints.endChanged === 'undefined') { + hints.endChanged = !!hints.connectionEnd; + } + + return getConnectionAnchorPoint(point, newWaypoints, oldWaypoints, hints); + } + + this.postExecute([ + 'connection.layout', + 'connection.updateWaypoints' + ], function(event) { + var context = event.context; + + var connection = context.connection, + outgoing = connection.outgoing, + incoming = connection.incoming; + + incoming.forEach(function(connection) { + var endPoint = connection.waypoints[connection.waypoints.length - 1]; + var newEndpoint = getnewAnchorPoint(event, endPoint); + + var newWaypoints = [].concat(connection.waypoints.slice(0, -1), [ newEndpoint ]); + + modeling.updateWaypoints(connection, newWaypoints); + }); + + outgoing.forEach(function(connection) { + var startpoint = connection.waypoints[0]; + var newStartpoint = getnewAnchorPoint(event, startpoint); + + var newWaypoints = [].concat([ newStartpoint ], connection.waypoints.slice(1)); + + modeling.updateWaypoints(connection, newWaypoints); + }); + + }); + + + this.postExecute([ + 'connection.move' + ], function(event) { + var context = event.context; + + var connection = context.connection, + outgoing = connection.outgoing, + incoming = connection.incoming, + delta = context.delta; + + incoming.forEach(function(connection) { + var endPoint = connection.waypoints[connection.waypoints.length - 1]; + var newEndpoint = { + x: endPoint.x + delta.x, + y: endPoint.y + delta.y + }; + + var newWaypoints = [].concat(connection.waypoints.slice(0, -1), [ newEndpoint ]); + + modeling.updateWaypoints(connection, newWaypoints); + }); + + outgoing.forEach(function(connection) { + var startpoint = connection.waypoints[0]; + var newStartpoint = { + x: startpoint.x + delta.x, + y: startpoint.y + delta.y + }; + + var newWaypoints = [].concat([ newStartpoint ], connection.waypoints.slice(1)); + + modeling.updateWaypoints(connection, newWaypoints); + }); + + }); + +} + +inherits(LayoutConnectionBehavior, CommandInterceptor); + +LayoutConnectionBehavior.$inject = [ + 'eventBus', + 'modeling' +]; diff --git a/lib/features/modeling/behavior/index.js b/lib/features/modeling/behavior/index.js index 1bdfaf866b..acceab57b6 100644 --- a/lib/features/modeling/behavior/index.js +++ b/lib/features/modeling/behavior/index.js @@ -17,6 +17,7 @@ import GroupBehavior from './GroupBehavior'; import ImportDockingFix from './ImportDockingFix'; import IsHorizontalFix from './IsHorizontalFix'; import LabelBehavior from './LabelBehavior'; +import LayoutConnectionBehavior from './LayoutConnectionBehavior'; import MessageFlowBehavior from './MessageFlowBehavior'; import ModelingFeedback from './ModelingFeedback'; import RemoveEmbeddedLabelBoundsBehavior from './RemoveEmbeddedLabelBoundsBehavior'; @@ -57,6 +58,7 @@ export default { 'importDockingFix', 'isHorizontalFix', 'labelBehavior', + 'layoutConnectionBehavior', 'messageFlowBehavior', 'modelingFeedback', 'removeElementBehavior', @@ -95,6 +97,7 @@ export default { importDockingFix: [ 'type', ImportDockingFix ], isHorizontalFix: [ 'type', IsHorizontalFix ], labelBehavior: [ 'type', LabelBehavior ], + layoutConnectionBehavior: [ 'type', LayoutConnectionBehavior ], messageFlowBehavior: [ 'type', MessageFlowBehavior ], modelingFeedback: [ 'type', ModelingFeedback ], removeElementBehavior: [ 'type', RemoveElementBehavior ], diff --git a/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js b/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js new file mode 100644 index 0000000000..20300f02c8 --- /dev/null +++ b/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js @@ -0,0 +1,16 @@ +import { getAnchorPointAdjustment } from './LayoutUtil'; + +/** + * Calculate the new point after the connection waypoints got updated. + * + * @param {djs.model.Label} label + * @param {Array} newWaypoints + * @param {Array} oldWaypoints + * @param {Object} hints + * + * @return {Point} point + */ +export function getConnectionAdjustment(position, newWaypoints, oldWaypoints, hints) { + return getAnchorPointAdjustment(position, newWaypoints, oldWaypoints, hints).point; +} + diff --git a/test/spec/features/modeling/behavior/LayoutConnectionBehavior.bpmn b/test/spec/features/modeling/behavior/LayoutConnectionBehavior.bpmn new file mode 100644 index 0000000000..d677474929 --- /dev/null +++ b/test/spec/features/modeling/behavior/LayoutConnectionBehavior.bpmn @@ -0,0 +1,49 @@ + + + + + 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..989e7dfa4c --- /dev/null +++ b/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js @@ -0,0 +1,165 @@ +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 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 + expectWaypoints(association, [ + { x: 525, y: 110 }, + { x: 355, y: 229 }, + ]); + })); + + + it('should reconnect on 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 + expectWaypoints(association, [ + { x: 525, y: 110 }, + { x: 460, y: 350 }, + ]); + + })); + + }); + + + describe('outgoing association', function() { + + it('should reconnect on 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 + expectWaypoints(association, [ + { x: 355, y: 229 }, + { x: 525, y: 110 } + ]); + })); + + + it('should reconnect on 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 + expectWaypoints(association, [ + { x: 460, y: 350 }, + { x: 525, y: 110 } + ]); + + })); + + }); + +}); + + +// 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 expectWaypoints(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.eql(expectedWaypoints[i].x); + expect(actualWaypoints[i].y).to.eql(expectedWaypoints[i].y); + } +} \ No newline at end of file From 9737708a581560baca444e5bcbab1ecfee7acd39 Mon Sep 17 00:00:00 2001 From: Martin Stamm Date: Thu, 19 May 2022 15:35:00 +0200 Subject: [PATCH 024/989] deps: bump to diagram-js@8.4.0 --- package-lock.json | 35 +++++++++++------------------------ package.json | 2 +- 2 files changed, 12 insertions(+), 25 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec3565cbc0..a769b5e0e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3333,33 +3333,19 @@ "dev": true }, "diagram-js": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.3.0.tgz", - "integrity": "sha512-J7/yb/25+eDj5THpgGW7SQdBUYLplELHvvl4kUOwgTNH/fQMzZ9Xdt/WGHhfBM37TFuIL+cbcdcUgSpJGSOlWQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.4.0.tgz", + "integrity": "sha512-oxfkdMPz2pnSau1GrjS/8IvLnBv/ejgsYDe0VJqCewxylLzLK7Len0oqu+gTx4uLr+tKy4hOo0wJuTOqJSBCDw==", "requires": { "css.escape": "^1.5.1", - "didi": "^5.2.1", + "didi": "^8.0.0", "hammerjs": "^2.0.1", - "inherits": "^2.0.4", + "inherits-browser": "0.0.1", "min-dash": "^3.5.2", "min-dom": "^3.2.0", "object-refs": "^0.3.0", "path-intersection": "^2.2.1", "tiny-svg": "^2.2.2" - }, - "dependencies": { - "min-dom": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.0.tgz", - "integrity": "sha512-IUNBVNMFR0fND5RM2rBPqTG/qch8SOWtxpNgc2L+yHqp8raz3tEoe9SfXObHuidyLSMrbF7gSnBPrFGaUHBnHg==", - "requires": { - "component-event": "^0.1.4", - "domify": "^1.3.1", - "indexof": "0.0.1", - "matches-selector": "^1.2.0", - "min-dash": "^3.8.1" - } - } } }, "diagram-js-direct-editing": { @@ -3372,9 +3358,9 @@ } }, "didi": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/didi/-/didi-5.2.1.tgz", - "integrity": "sha512-IKNnajUlD4lWMy/Q9Emkk7H1qnzREgY4UyE3IhmOi/9IKua0JYtYldk928bOdt1yNxN8EiOy1sqtSozEYsmjCg==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/didi/-/didi-8.0.0.tgz", + "integrity": "sha512-PwqTBaYzzfJSyxvpXPcTWF6nDdCKx2mFAU5eup1ZSb5wbaAS9a/HiKdtcAUdie/VMLHoFI50jkYZcA+bhUOugw==" }, "diff": { "version": "5.0.0", @@ -5995,7 +5981,8 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "inherits-browser": { "version": "0.0.1", @@ -6632,7 +6619,7 @@ }, "json5": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, diff --git a/package.json b/package.json index 302d24ab43..2e6e6e9bfc 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "dependencies": { "bpmn-moddle": "^7.1.2", "css.escape": "^1.5.1", - "diagram-js": "^8.3.0", + "diagram-js": "^8.4.0", "diagram-js-direct-editing": "^1.6.3", "ids": "^1.0.0", "inherits-browser": "0.0.1", From 9b8c19062509dfdfdca153dedb7a7550f3832e88 Mon Sep 17 00:00:00 2001 From: Martin Stamm Date: Fri, 20 May 2022 14:25:55 +0200 Subject: [PATCH 025/989] fix(Layout): always reconnect labels and associations closes #1658 --- .../modeling/behavior/util/LayoutUtil.js | 19 ++++---- .../modeling/behavior/LabelBehaviorSpec.js | 8 +--- .../behavior/LayoutConnectionBehaviorSpec.js | 47 +++++++++++++++++++ 3 files changed, 57 insertions(+), 17 deletions(-) diff --git a/lib/features/modeling/behavior/util/LayoutUtil.js b/lib/features/modeling/behavior/util/LayoutUtil.js index 477c2c98a6..e45e7b54d1 100644 --- a/lib/features/modeling/behavior/util/LayoutUtil.js +++ b/lib/features/modeling/behavior/util/LayoutUtil.js @@ -80,16 +80,16 @@ export function findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hi return index; } - if (hints.connectionStart) { - return (index === 0) ? 0 : null; + if (hints.connectionStart && index === 0) { + return 0; } - if (hints.connectionEnd) { - return (index === oldWaypoints.length - 2) ? newWaypoints.length - 2 : null; + if (hints.connectionEnd && index === oldWaypoints.length - 2) { + return newWaypoints.length - 2; } - // if nothing fits, return null - return null; + // if nothing fits, take the middle segment + return Math.floor((newWaypoints.length - 2)/2); } @@ -121,15 +121,12 @@ export function getAnchorPointAdjustment(position, newWaypoints, oldWaypoints, h oldLabelLineIndex = attachment.segmentIndex, newLabelLineIndex = findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hints); - if (newLabelLineIndex === null) { - return oldPosition; - } // should never happen // TODO(@janstuemmel): throw an error here when connectionSegmentMove is refactored if (newLabelLineIndex < 0 || - newLabelLineIndex > newWaypoints.length - 2) { - + newLabelLineIndex > newWaypoints.length - 2 || + newLabelLineIndex === null) { return oldPosition; } diff --git a/test/spec/features/modeling/behavior/LabelBehaviorSpec.js b/test/spec/features/modeling/behavior/LabelBehaviorSpec.js index e21b716e91..3bb749f4b7 100644 --- a/test/spec/features/modeling/behavior/LabelBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/LabelBehaviorSpec.js @@ -372,7 +372,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 +387,6 @@ describe('behavior - LabelBehavior', function() { businessObject: businessObject }, startEventShape.parent); - var oldLabelPosition = { - x: sequenceFlowConnection.label.x, - y: sequenceFlowConnection.label.y - }; // when sequenceFlowConnection.label.hidden = false; @@ -412,7 +408,7 @@ describe('behavior - LabelBehavior', function() { expect({ x: sequenceFlowConnection.label.x, y: sequenceFlowConnection.label.y - }).to.eql(oldLabelPosition); + }).to.eql({ x: 273, y: 178 }); } )); diff --git a/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js b/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js index 989e7dfa4c..f20df4aefa 100644 --- a/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js @@ -73,6 +73,29 @@ describe('behavior - LayoutConnectionBehavior', function() { })); + it('should reconnect on 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 + expectWaypoints(association, [ + { x: 525, y: 110 }, + { x: 460, y: 300 } + ]); + })); + }); @@ -125,6 +148,30 @@ describe('behavior - LayoutConnectionBehavior', function() { })); + + it('should reconnect on 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 + expectWaypoints(association, [ + { x: 460, y: 300 }, + { x: 525, y: 110 } + ]); + })); + }); }); From 7838a1bd6719e64d957ea78b9cafc160b95e7e06 Mon Sep 17 00:00:00 2001 From: Martin Stamm Date: Fri, 20 May 2022 18:13:19 +0200 Subject: [PATCH 026/989] test: allow for rounding errors --- .../modeling/behavior/LabelBehaviorSpec.js | 6 ++---- .../behavior/LayoutConnectionBehaviorSpec.js | 18 +++++++++--------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/test/spec/features/modeling/behavior/LabelBehaviorSpec.js b/test/spec/features/modeling/behavior/LabelBehaviorSpec.js index 3bb749f4b7..4eee7c5f14 100644 --- a/test/spec/features/modeling/behavior/LabelBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/LabelBehaviorSpec.js @@ -405,10 +405,8 @@ describe('behavior - LabelBehavior', function() { ]); // then - expect({ - x: sequenceFlowConnection.label.x, - y: sequenceFlowConnection.label.y - }).to.eql({ x: 273, y: 178 }); + expect(sequenceFlowConnection.label.x).to.be.closeTo(273, 1); + expect(sequenceFlowConnection.label.y).to.be.closeTo(178, 1); } )); diff --git a/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js b/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js index f20df4aefa..87b9f48c2d 100644 --- a/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js @@ -48,7 +48,7 @@ describe('behavior - LayoutConnectionBehavior', function() { modeling.updateWaypoints(sequenceFlow, newWaypoints, hints); // then - expectWaypoints(association, [ + expectApproximateWaypoints(association, [ { x: 525, y: 110 }, { x: 355, y: 229 }, ]); @@ -66,7 +66,7 @@ describe('behavior - LayoutConnectionBehavior', function() { modeling.moveElements([ startEvent, endEvent ], { x: 0, y: 200 }); // then - expectWaypoints(association, [ + expectApproximateWaypoints(association, [ { x: 525, y: 110 }, { x: 460, y: 350 }, ]); @@ -90,7 +90,7 @@ describe('behavior - LayoutConnectionBehavior', function() { modeling.updateWaypoints(sequenceFlow, newWaypoints); // then - expectWaypoints(association, [ + expectApproximateWaypoints(association, [ { x: 525, y: 110 }, { x: 460, y: 300 } ]); @@ -123,7 +123,7 @@ describe('behavior - LayoutConnectionBehavior', function() { modeling.updateWaypoints(sequenceFlow, newWaypoints, hints); // then - expectWaypoints(association, [ + expectApproximateWaypoints(association, [ { x: 355, y: 229 }, { x: 525, y: 110 } ]); @@ -141,7 +141,7 @@ describe('behavior - LayoutConnectionBehavior', function() { modeling.moveElements([ startEvent, endEvent ], { x: 0, y: 200 }); // then - expectWaypoints(association, [ + expectApproximateWaypoints(association, [ { x: 460, y: 350 }, { x: 525, y: 110 } ]); @@ -166,7 +166,7 @@ describe('behavior - LayoutConnectionBehavior', function() { modeling.updateWaypoints(sequenceFlow, newWaypoints); // then - expectWaypoints(association, [ + expectApproximateWaypoints(association, [ { x: 460, y: 300 }, { x: 525, y: 110 } ]); @@ -196,7 +196,7 @@ function copyWaypoints(connection) { }); } -function expectWaypoints(connection, expectedWaypoints) { +function expectApproximateWaypoints(connection, expectedWaypoints) { var actualWaypoints = connection.waypoints; @@ -206,7 +206,7 @@ function expectWaypoints(connection, expectedWaypoints) { expect(connection.waypoints.length).to.eql(expectedWaypoints.length); for (var i in actualWaypoints) { - expect(actualWaypoints[i].x).to.eql(expectedWaypoints[i].x); - expect(actualWaypoints[i].y).to.eql(expectedWaypoints[i].y); + 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 From b158addcc8f46ecbc9210b6b569823686547a323 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 24 May 2022 21:50:48 +0200 Subject: [PATCH 027/989] deps: bump to diagram-js@8.5.0 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index a769b5e0e1..373fb57b1b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3333,9 +3333,9 @@ "dev": true }, "diagram-js": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.4.0.tgz", - "integrity": "sha512-oxfkdMPz2pnSau1GrjS/8IvLnBv/ejgsYDe0VJqCewxylLzLK7Len0oqu+gTx4uLr+tKy4hOo0wJuTOqJSBCDw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.5.0.tgz", + "integrity": "sha512-UHA/Zfs7kG22M9wXAifAyPb2OZ4lG4lFi0CZ0GC6/lXmOsSHwHVZ1s/h9UqaIXnzIKW8SnZoP3Rwqel1ZhZLzg==", "requires": { "css.escape": "^1.5.1", "didi": "^8.0.0", diff --git a/package.json b/package.json index 2e6e6e9bfc..a90576c8c6 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "dependencies": { "bpmn-moddle": "^7.1.2", "css.escape": "^1.5.1", - "diagram-js": "^8.4.0", + "diagram-js": "^8.5.0", "diagram-js-direct-editing": "^1.6.3", "ids": "^1.0.0", "inherits-browser": "0.0.1", From 3d193b293340d810c889f143d0269aec15ac1cd6 Mon Sep 17 00:00:00 2001 From: Philipp Fromme Date: Fri, 25 Oct 2019 13:26:01 +0200 Subject: [PATCH 028/989] feat: add multi-element delete action --- .../context-pad/ContextPadProvider.js | 51 ++++++++++++++- .../context-pad/ContextPadProviderSpec.js | 63 ++++++++++++++++++- 2 files changed, 109 insertions(+), 5 deletions(-) diff --git a/lib/features/context-pad/ContextPadProvider.js b/lib/features/context-pad/ContextPadProvider.js index 2d2f4a1fcf..f055f546db 100644 --- a/lib/features/context-pad/ContextPadProvider.js +++ b/lib/features/context-pad/ContextPadProvider.js @@ -1,7 +1,8 @@ import { assign, forEach, - isArray + isArray, + every } from 'min-dash'; import { @@ -86,9 +87,49 @@ ContextPadProvider.$inject = [ 'translate' ]; +ContextPadProvider.prototype.getMultiElementContextPadEntries = function(elements) { + var modeling = this._modeling; -ContextPadProvider.prototype.getContextPadEntries = function(element) { + var actions = {}; + + if (this._isDeleteAllowed(elements)) { + assign(actions, { + 'delete': { + group: 'edit', + className: 'bpmn-icon-trash', + title: this._translate('Remove'), + action: { + click: function(event, elements) { + modeling.removeElements(elements.slice()); + } + } + } + }); + } + + return actions; +}; + +/** + * @param {djs.model.Base[]} elements + * @return {boolean} + */ +ContextPadProvider.prototype._isDeleteAllowed = function(elements) { + + var baseAllowed = this._rules.allowed('elements.delete', { + elements: elements + }); + if (isArray(baseAllowed)) { + return every(baseAllowed, function(element) { + return includes(baseAllowed, element); + }); + } + + return baseAllowed; +}; + +ContextPadProvider.prototype.getContextPadEntries = function(element) { var contextPad = this._contextPad, modeling = this._modeling, @@ -113,7 +154,7 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { connect.start(event, element); } - function removeElement(e) { + function removeElement(e, element) { modeling.removeElements([ element ]); } @@ -479,3 +520,7 @@ function isEventType(eventBo, type, definition) { return isType && isDefinition; } + +function includes(array, item) { + return array.indexOf(item) !== -1; +} \ No newline at end of file diff --git a/test/spec/features/context-pad/ContextPadProviderSpec.js b/test/spec/features/context-pad/ContextPadProviderSpec.js index 2ea5ce3194..c17c7e518b 100644 --- a/test/spec/features/context-pad/ContextPadProviderSpec.js +++ b/test/spec/features/context-pad/ContextPadProviderSpec.js @@ -51,8 +51,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'); }; })); @@ -165,6 +165,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; + } + )); + + }); + }); From 6c3d50584c09bcf0188e6471c7f6f9146e8e7a7e Mon Sep 17 00:00:00 2001 From: Martin Stamm Date: Tue, 24 May 2022 14:25:46 +0200 Subject: [PATCH 029/989] chore: re-export GeometricUtil from `diagram-js` --- .../modeling/behavior/util/GeometricUtil.js | 122 +----------------- .../behavior/util/GeometricUtilSpec.js | 120 +---------------- 2 files changed, 7 insertions(+), 235 deletions(-) diff --git a/lib/features/modeling/behavior/util/GeometricUtil.js b/lib/features/modeling/behavior/util/GeometricUtil.js index 96033aedea..c29d64fbb0 100644 --- a/lib/features/modeling/behavior/util/GeometricUtil.js +++ b/lib/features/modeling/behavior/util/GeometricUtil.js @@ -1,121 +1 @@ -/** - * Returns the length of a vector - * - * @param {Vector} - * @return {Float} - */ -export function vectorLength(v) { - return Math.sqrt(Math.pow(v.x, 2) + Math.pow(v.y, 2)); -} - - -/** - * Calculates the angle between a line a the yAxis - * - * @param {Array} - * @return {Float} - */ -export function getAngle(line) { - - // return value is between 0, 180 and -180, -0 - // @janstuemmel: maybe replace return a/b with b/a - return Math.atan((line[1].y - line[0].y) / (line[1].x - line[0].x)); -} - - -/** - * Rotates a vector by a given angle - * - * @param {Vector} - * @param {Float} Angle in radians - * @return {Vector} - */ -export function rotateVector(vector, angle) { - return (!angle) ? vector : { - x: Math.cos(angle) * vector.x - Math.sin(angle) * vector.y, - y: Math.sin(angle) * vector.x + Math.cos(angle) * vector.y - }; -} - - -/** - * Solves a 2D equation system - * a + r*b = c, where a,b,c are 2D vectors - * - * @param {Vector} - * @param {Vector} - * @param {Vector} - * @return {Float} - */ -function solveLambaSystem(a, b, c) { - - // the 2d system - var system = [ - { n: a[0] - c[0], lambda: b[0] }, - { n: a[1] - c[1], lambda: b[1] } - ]; - - // solve - var n = system[0].n * b[0] + system[1].n * b[1], - l = system[0].lambda * b[0] + system[1].lambda * b[1]; - - return -n/l; -} - - -/** - * Position of perpendicular foot - * - * @param {Point} - * @param [ {Point}, {Point} ] line defined through two points - * @return {Point} the perpendicular foot position - */ -export function perpendicularFoot(point, line) { - - var a = line[0], b = line[1]; - - // relative position of b from a - var bd = { x: b.x - a.x, y: b.y - a.y }; - - // solve equation system to the parametrized vectors param real value - var r = solveLambaSystem([ a.x, a.y ], [ bd.x, bd.y ], [ point.x, point.y ]); - - return { x: a.x + r*bd.x, y: a.y + r*bd.y }; -} - - -/** - * Calculates the distance between a point and a line - * - * @param {Point} - * @param [ {Point}, {Point} ] line defined through two points - * @return {Float} distance - */ -export function getDistancePointLine(point, line) { - - var pfPoint = perpendicularFoot(point, line); - - // distance vector - var connectionVector = { - x: pfPoint.x - point.x, - y: pfPoint.y - point.y - }; - - return vectorLength(connectionVector); -} - - -/** - * Calculates the distance between two points - * - * @param {Point} - * @param {Point} - * @return {Float} distance - */ -export function getDistancePointPoint(point1, point2) { - - return vectorLength({ - x: point1.x - point2.x, - y: point1.y - point2.y - }); -} \ No newline at end of file +export * from 'diagram-js/lib/features/bendpoints/GeometricUtil'; \ No newline at end of file diff --git a/test/spec/features/modeling/behavior/util/GeometricUtilSpec.js b/test/spec/features/modeling/behavior/util/GeometricUtilSpec.js index 6b31b292aa..8e30a60de9 100644 --- a/test/spec/features/modeling/behavior/util/GeometricUtilSpec.js +++ b/test/spec/features/modeling/behavior/util/GeometricUtilSpec.js @@ -9,122 +9,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 Date: Tue, 24 May 2022 21:54:31 +0200 Subject: [PATCH 030/989] fix: use inherits-browser --- lib/features/modeling/behavior/LayoutConnectionBehavior.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/features/modeling/behavior/LayoutConnectionBehavior.js b/lib/features/modeling/behavior/LayoutConnectionBehavior.js index b43d552391..0963fb38f0 100644 --- a/lib/features/modeling/behavior/LayoutConnectionBehavior.js +++ b/lib/features/modeling/behavior/LayoutConnectionBehavior.js @@ -2,7 +2,7 @@ import { assign } from 'min-dash'; -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; From c80880fa39baa516f7c45d77e4d71de78a0b4b1b Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 24 May 2022 21:55:53 +0200 Subject: [PATCH 031/989] deps: bump tiny-svg --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 373fb57b1b..12764c7082 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11391,9 +11391,9 @@ } }, "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": "2.2.3", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.3.tgz", + "integrity": "sha512-u5KGg889pD1W2c9GlLrTnAGzIkAO00/VXZGyzeiGHw+b9er8McLO0SnhxPQQDwDqFO0MrJ825AEsRUoTiDZFuQ==" }, "tmp": { "version": "0.2.1", From aa4b45da6c45af2c36126e36c98f0cc0eda7efa5 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 24 May 2022 16:01:11 +0200 Subject: [PATCH 032/989] fix(label-editing): cancel on element deletion Closes https://github.com/bpmn-io/bpmn-js/issues/1664 --- .../label-editing/LabelEditingProvider.js | 10 ++++++++++ .../label-editing/LabelEditingProviderSpec.js | 20 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/lib/features/label-editing/LabelEditingProvider.js b/lib/features/label-editing/LabelEditingProvider.js index 3aea069a92..c0520ad8b1 100644 --- a/lib/features/label-editing/LabelEditingProvider.js +++ b/lib/features/label-editing/LabelEditingProvider.js @@ -58,6 +58,16 @@ export default function LabelEditingProvider( } }); + eventBus.on([ + 'shape.remove', + 'connection.remove' + ], function(event) { + + if (directEditing.isActive(event.element)) { + directEditing.cancel(); + } + }); + // cancel on command stack changes eventBus.on([ 'commandStack.changed' ], function(e) { if (directEditing.isActive()) { diff --git a/test/spec/features/label-editing/LabelEditingProviderSpec.js b/test/spec/features/label-editing/LabelEditingProviderSpec.js index 5d99cec34f..4678b85299 100644 --- a/test/spec/features/label-editing/LabelEditingProviderSpec.js +++ b/test/spec/features/label-editing/LabelEditingProviderSpec.js @@ -203,6 +203,26 @@ describe('features - label-editing', function() { } )); + + it('should cancel on element deletion', inject( + function(elementRegistry, directEditing, selection, 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'); + } + )); + }); From bd5b5d05e6825da39fdb27823ce89ddd647aba6e Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 25 May 2022 08:39:21 +0200 Subject: [PATCH 033/989] deps: bump to diagram-js-direct-editing@1.7.0 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 12764c7082..02f70a0ed0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3349,9 +3349,9 @@ } }, "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==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-1.7.0.tgz", + "integrity": "sha512-ZfTLF4hdWr7NSoruwxGvVmu7aVaUjWRXjwgK5dx58LbXAsNjBS3Ap7zjVuGxjWUpCZ/MMwyZ00lpTHPH2P7BFQ==", "requires": { "min-dash": "^3.5.2", "min-dom": "^3.1.3" diff --git a/package.json b/package.json index a90576c8c6..c84e247fb4 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "bpmn-moddle": "^7.1.2", "css.escape": "^1.5.1", "diagram-js": "^8.5.0", - "diagram-js-direct-editing": "^1.6.3", + "diagram-js-direct-editing": "^1.7.0", "ids": "^1.0.0", "inherits-browser": "0.0.1", "min-dash": "^3.5.2", From cd58925a9d54d5de752cee79af988ef33480f687 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 25 May 2022 08:19:33 +0200 Subject: [PATCH 034/989] fix: use inherits-browser + add lint rule to verify it --- .eslintrc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.eslintrc b/.eslintrc index f8ce66a665..a7a7665001 100644 --- a/.eslintrc +++ b/.eslintrc @@ -3,6 +3,12 @@ "env": { "browser": true }, + "rules": { + "no-restricted-imports": [ "error", { + "name": "inherits", + "message": "Use inherits-browser instead" + } ] + }, "globals": { "Promise": true } From 465f77e7777d770db865f899311014a8d7b80175 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 25 May 2022 11:48:09 +0200 Subject: [PATCH 035/989] docs: update screencast --- resources/screencast.gif | Bin 42195 -> 34977 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/screencast.gif b/resources/screencast.gif index 4881e021c821e6dc107119de46eb3acf38b1f6eb..60a18c5541d72ce30ccea9eb600a918309ceb819 100644 GIT binary patch literal 34977 zcma&NXIN8TxAwbMdLTgP5L)P=sED9|h@p2xK&mBF0TF2;AY$lM4823>9YPW5h9*_O zjtEkvT0q6Foap~~_I~z$-*cVASFV+0-s?BU9P=Jy>Kp2*s5**4p^kj&ZwV%DU~_koN*zvut|pXffbnXZ+kwx+qR z;z0!{$aqrp8w_p;fPnm;Px-S<0I^Rb`xwaMZjY4tje4mSO;-gN)!R4D)CG>e4Y{{S z3o<#FH?`3k^1!=mVW&ORtnuahuiar&?|$XJlq& z=j7()7Zeszi%Uw&$}1|Xs%vWN>KhtqP0cN>ciQf@cXW1j_w?SQ_w^494&5JSXgNOd zU~+2u;iJb-o<4g%^J4bp-2AJB#iiwy)z@q58=G6(Z{EIpzq9+{#f|a}no5Qe`HpzbjWm@G-^Obv2pTq*jiwPSYtD`~ zmyc&DIFIEUwp2XGQ}N%L8*Qna+AktTG6@;ARy`~=NRvG`)>{3z(!A8D!01lR(^}gW z&-t-Cwa*(#0|`RLZFMhN+#lDR8*i(BdDmxUtibqg!+clJ$F2GCyNwI?$WUfslXlwD zKpdys`HA+Xm0^mwaiK{^^Xu{KBbQ!HbhNBbQMD6=O*>mRA6Hq{o`2AJXZtzLdA!iH ztL^Q}cK_{H54!HYU!X@aiwabK4B$E>6!b= zEtR#Zm1OnL8!NYo2$@xi4v)ubih)%1YO2Z6&DAt>J(<_(R@NS`Gi=?eUuT{T+1)wxT zVwzsozE-o{(EWL9yOEBNdqW%K*{+46r0QT0MeY8(&Npq_-d!l-4!MC{o^n}?byXIGAQVagSn4uUUr)@coR1Qe zPkoaPV}@u}a7Y|y0aL9Lhy!GK@+EM_I*kl#H%i(SM!@7Xho4E%c1J=9Cgh{2#gN0} zK?HIwbZ+8!I812;1RDq!OFxu-{(M#+%vhegHOa5O)gOcg*}0 ze(&k!pX!>A7s%>;6QnNRZ5Ru=^vHn6-QA-qm*j+w38=lCH=VyW-lH&|wl#kY7Yx-1 zUyRH<{N-4vbfMl-67t>Gm7DruUst1yy;YYxvD4(I$_L+>uJo9DX@Za$)VGb?k6Ppw zHuAyJjq7(`?SE^4kFc(6-MP>^zTKXCS@X@2N0Tg@?O2K&$dr8o+-i9l*8S;@dD8Yc zpmbYqx65X-^Zi}hlQN&R+)sMEn~z*LzTT9r(aXNZ*4UMB|4QUf`Q=l@F!r^RCr>7H z=M{c;S)CFOM@GQTsNft-w?XXBC=|az{~5yj5DNoGPZae? zNFNgfWlM)($pBKF9^4^Id`N7fdnrxFspdz(ENyUZLpvaf1aNZE$ah?KFXi!-@FvD3 zh!^ftn2ZD;w0%<6mcfufI4u)4(Fx4kQ0|=w$XrmHO35Q!mWiv>-D#t7{3D7T zb+&9e5N&y0JgdZ9k}pIx2iA=R)d%}U{NbZURv)tO{)|!_pqq?*V#{?UN(f3inw)iO z;e5%ZeN5=Fj!$l1GRKCE%#d|=MoohdX`vnVcD^2HM> z%~NkVckPWdVMi4><;Kngr90h?BbyH>rNp@Jl)*}>Dr4MxKkqF!?f=K9Cqg-K>5z5YMdi*uz-u0HvRCP zf+;Iv<%NWa5ewBqtl`qc_8E}){NoGd2v=PUR8iUbXg5cFy!$1`1t#?1Q81<5j{vl9 z$(A=9ZjK4gezrkv>CuXy?XA{{t8c>|c|K^>0uDS3h_mkx;>h;IuHm_MfQLBEmZo!c zA~+ztLO8tbl>3{H6*a&R>CTbEE;QL%}&@S`j-Op(u-GZ zfO^6^;q9n5vqQ;~CnBYvkHyjwj-f}C8~uJzCAx@gqJbN$7m0UNBwxTbi~}0MyAtDYWYd5MOmypiV7SC z^3mC!w>k-Dch9Tay*Spbc+ZdGyVKV0=-&F3wHLA*5>IzN>B)7io6GM!_g zo<^qbxi;dCf4lDwWTubWzLp799d@+d{Y-h22}Vt@z7$%6plItFAHPk7u_{rK2R5`g zzfZ@UC&%B&=&RxI^@>XlD3LVXG<5hrHIP7rwkO!hqWo<~rXSr^eYk=SB#P@^kRwn2>|r zVMhgmgu*?Isk7|uZFidL-+KA~c=?j`?%kpJw|j*)I|YlpM%NEsYtVikI)A}2{_f~hP_s~!>taW5D|6zrr*%Js6wkE`dFciY z$Zay8C;j3D+{{#RUjubmw!S6tWBu7(xQjB~iV%^X<6&=o2J7KY6C%8j{(@qkPiuS- zG2sY^{MZ%A?qjx`_alzTvGPTV9%tp?iAwS}dzCI-x~}4_Fr7x;{{SBE8)k25c;vr# zrK@{})%JONLzP)n!7=f-5{Gu4Whs1$wdrf?L6E(rr(LDwZYOddCx%V8pT8o>@#ggvw(wupyjSlU#072ijr|sk@I7HV%w*c4;Vz7nbyJIYeQB8Yie8u-)q>dowP|x>e>)Zh8M)dXc-q(} zpyNY;4lVdrvBK0b#3@(P@@qyf^wGRQu&iSdS2E=WD#*#ZZo)x`nlslM&x8*Fpkp;%3>uInC)dIl;tO!-b%Rz^(v$675$r-_;zRYowC#zrcH z?_Z2boIV-R9y+JY51}gDL?M#1(Z4G(?q5-H28d91e(%ADL3Dv@NLUx{Bt9Y}<|-uFm?xDUHolalrxpd= z+5;R%tZAswc$LIJ8~Ae+4o0-eumD(T0EQg>S{uMp!uyWIrUS_%=JDpXx2_wQR)Yo# ztw-PrDST0Khg%QvAa6rlRX%2;R}Fm0*Kp`XU=tzR^9UH9v0S!|lN&{gynwBJ#X&Zm z+d1X7vs!;`8qB%{%^y*OAa zGF>EsGE7ewevu}-PC3AF3$1!9YbO=`HEsV;Nrtgurt4+~u#@h{pKp2PKR(2FM`J2ec>UwU63YR5Ry% z6BeaFXqzZWJSc{T@zKGqc(^n*|0<9ZB9rs+FwoDR7i$jT_sKu+1G)PxzbA+J-llM0 zJOqKKplEqe>_M0GLYuFd+*rt3M?RncKso?kI)GLH{kPg93AA-`Uf;#{^wiKAomnX}J$zV%ujS2x8$WDT^EQ2buholuiS#uDxW6MVZ3FN$(*@D}hWq?9; zyB&m`S}+<6LdalbuG(c;Ai}6BE2Qd<2Pj6D79fK2hDi4<=3xF38K1mr?SfU+LYK1I zeR-oinJti?RDFdBa(A@Evb=gY7$TwoF`(8-%fbY35Ij(&HC;0tUoiV3UxHZBh^vw! z)oGLK9?4dUjTQSW1}qX?41z^u#>)CVfcBb__qawaY-5BPWcyn#0t?}%gRDD^tmHD| z&f+FR+H_4my|YrALIcQk$m`(G8k!Eh@i!9?uUzc_dFXZgd8PC*kYxu@GH!v^<~O~lc8LN-d_cMS|04+!>?QNKk9M)0szS$|DOjt{CYJ<&;8b5EX}d zc6yzg0}R*Ia$>xGe6;0xZUM5ZUT&wRp&H~~Y%gT$&{b=9NWAOkbNv`abtZAB;jb8>MX6{dr`z}L7FklJ+VcS2+9&6nCUJrS+Ms<^<;cO zVkb3Hw)?@4ZjR}K@va`T&Za9q)^m81_bR9u&uR-wuMNG|nBMy?5!N76sjC18P{6c) zaLa)^R<4;;qby}!VDqx!Gjll#Tlv8XB2NM_XUo|fX#2Mv@=oNb2`H3hKLTYtAv~lK zHG!&d7f=Lf)uPhVo2#_V`_f9lBDvlx=5q7vrv-F3Hg9qMuYm~XtARJ6BYQBF}Q~t!Vrga6y%tu2lrl9U8h>q zR)?LoM5}ZoE+)Y|@?q^vl$C_S8)N;KiraEK?}^wOKc}B+G)9VI4@r;*KB0A|>>D8- z#ZiLBpX@;4MPLdyf>IbU*&4niIEvjF?o%s*5%a>mM#2*zOxPlmS>UA_OntlA-xtC| zg7?MLgpe2k`a@l)uYGPCWr%eZzP zVq2*_%=9~0n$Np!f5I**qmK+sLj6LDVrQvWKD0!k^`o@Fn_BC3SrB%l(KOHZEY!B}59=3yl&56ut0JOCNK31Z}>^q-# zmz~6bz{@cWX2{9e+aGi$_D^=TR8KtJ-+F3es&}dT*`@92EcH^y`6A^L%})~Y^Ew}X z3{U2%R%V+9$U-v_CuX9~&BWZ8i7S{%=$T2HpGgvukqTBZDnPl()kh_a85_5-3PP|n zx-_h-_Ly6+4HhvIXTmO z%&_+9cqeSy^Z5O_Je%29ywmrt-4NxDdIlU{ zgq>eRge{^97nyn&F|QW)S>G)#SUgR^mq^ijq|a4C#sLhT#$sH~O$98N@`_m&8dR%r zlS`84mn>?g9p)-!4}!dtwA{`r{6UbWN`KJ z+pV7k6s!{RexEqwvo)5j%>-Q>x)3^ep>F8i5D@x%2tj=ktg+#hKV(_{{95lu(yNW+ z-y0O+%~Xxe^z)mUVVl{7o4LK4`L8w$e{WKSw@Ng&%Fb_9gl$z7Zq@W|)xFwk_`O9F z-fq^|Zau%<7Pc+kUbx-ayWRb2yZ84tUHDDE#+$+OZ|;Y^87X`-*866{OiuG3-w?^L z4CQ@5XOI&R0s#07o&>mf6s}@rpj#E1gRSpXVTX@Adp$465kp35OF%eyc4Gi6c?_4P zgW@V_kU_HtkuHNU7W!VY>BJF<>90IU&o;=AQa+eWUKtNq+4Dc)D1QxL0kPr0F>Ig@ zA@2n;acv8t(npAJ}4H+d|criOikZZ!&U>v?E`(%a&8%mJ|c4pNso7iKm*-j zY;1b7GImTDb?%VUjpnGoCMgo&0_45HQy@2Rn6cRX#Q+n=VlOI`)V+Xtu1o}6*4CaD zwu%aSPFfElSU5i7ZMi!-~ zN~u7dv|_CKE(#srnCFLu0E}hl-NC>D)rFhYt`!eAJcz$khovSaLNa0NNMTF;S;isJi!Gf$yT zjHL0$JVpTAfc$w-9TW!+{m})FPcE?#3@@X2ZKsZY)ZvU0v`ofaImHofAPQkuWuoYl z`abRna|lC3wTLjlFpBD~W|tZhN5M++lxX37$b8+sQ96EDDBlCHG?%0VVZk6Su(Pvp zv1!PO`J)q05M3QFcyOFGW93v&ONVD((SXA};;+b^tAr*NW@(seI$;lU(IU%dr#Bfq_1i}}kgWpapM6l@?%41W+bop8M0(~D*OEHNe z;t4Q2YAM51Mr!_-tK1eq{Kr*Zi#pn$c&acsgsEKT|I1WPiTQVEF;uky2_PPj`(LU; z{##Wx?0>3y=YOiI`#)7}_}{9Y_?N0A4s_yyf2n%t->M$`PgM{8RaF7_x2h5_hOG3z zvdWjJk27SQ5}WAs5ockaf?k=Knw@=7HzM(mtZOgMZT^*2{;#ZG*1mlI!I1R?vlMLP zaJW{VAcAd~FOF!SD^4e|p#3{`*rH>=DNQ=Fz) zKNA(jb_sT!Xq3(>fhZh4l#C2A2t-ApKz2ZaJ;Lcls*+Ar6rl;r4GD)1(oGE{Vh@p< z1QjaKdg9Y0KApdcngDWQSI}}APUmAJ;2ib;| z2BIZMcp}sG-1fWo=+HzlW=>Frlk1zx_aDc;pg5j9bRJLZi)eFFcgOmSqbxBT28;%X z7&KM_X7X|*CRa%=_pA@v&_d^*q-My-W%7$aAD{u|0gTQMJ=@%XqbHdrZt=}XwqRVE zb2i_;e5R@`_qBKR;D}hplyRo&VAK3G(Rw{l7au(PF&U|8{;t5R`v)e#nO) zIe$7ozG7rCad8QWrk3W`yKNnJy4t%td+7K2dk6c52JVlJj1NB;4O0-y62;1Ka3VQ5 zSWw&*wOYdRg1ifh>xX$8HvV*euGQZ}q)W;p!EfKcBL$g1)u@w4z7(^lTZ#YfR$+90 zw5=cj|Dd=}(NLnGlv~Y6xGtGZT-ZKU+VoH7XW=V49tn+3RQMvK0Pa}mvhZq^eXa7n z9lMX<7eoE+{6Li6N+h`*EPq`2-ue~4k66Xi8$zBIoxzSoOo52q7C#Mg;iwl^vk;Zc za{1+*%jnb{wOAL+s-TZ0srIq56Hr;Kya5I1OUU9qK3A@Sm7Z@r&YXPW;q55$uy(Ge zFb8A+qy!jj37LN9xS&>eAdK1(M32GnTs+t?zu#uWc>;q`BV<{X!A?dc5%o*2@65mgCO*n9?(AS;v;MNZe+_2HVDYmxcc)^UC$%+_F?R(rR4IibHAX$vS_KGNyV~@ps0~Yg|?MN#cjmF<%hzNU;th} zE0|Ed1d2b28_xF0zP46$`j?{%275m^KEtbDvr_m%FT0d%XfG&9O)p##xBc$rfi6jF zPmv7E_OeMX4cZFUFY`{f+pMYi8s`)xmCZC9aVb!3FoL7v(OE!{Y1cg#vOL07J6O2v zS*&Hf%pbWIoZEkq-y7~wQua9kU88Mc|EBGFyM2a+pEuJ*AD+EPdURCsg#{`+twYJi5Y7$;I-}|Uy{6aN^`BHr! zpPaON7*x4^I23kEHn!uJk^1fsa1ev+=D#Zl&A`X*EeN95wckZ!v*zB6n%2mBBsX`S zmB~0vtz}cKaI0oBP)=2^ycbAguAYLe5n88phQ0iRvP1G+CQn`IDI3UX)mM%qUYJ*W zsC%tj>7IV4P;;G`2zpOQK#+1pYB}YL%dDsKL?A|4zpDT2Yhj+e7TpP>yc@ZFyx`1Yk?SZ2<74U(=}l}#hdY$Se49w ze`CpR4EwfSdz&bb##~&#H^e%XlRFKSQd~H0xASOg1Qh;d>w5B(CiyzA@41g(rF-DH zFaX;+vx!hCffSC&Ven+A?KCjm(ucu+ftY@R#PuJGF<$7#Wg3ajG;cH-=$u;HybBO(jOhwoBin~iPp2=;01 zJ^4{_=H@u)ygL(AG3Ry?eZ@|!z2KlTVe~}4Us#>QX)voCyn@1mCH`cnlU?i9##^CZ zsth|ir*P@p5JW-&xT@~K4!^&s3=%a7r$z5PtV_*B;_@#jF6U;odn;fJ0Fc!m=s^?l z$o3q5vYn~I6QaN^AE(~_Gy(bT8C%6={@ z9psBj83{3kdlEzzx$}=Cip%d$Yd_EgRq}IrQ^w958tzZCW|I`1SGbBpQT55^b5pZ_ zUu|%HioT*Q9`W^|qo$O?8`LiCg!V4?A>SKbMhBIJIf7!FvI-0rjtYq54c(iDcWd3R zD?K}Qi&URQuX7w$<<5fP#UEm1*4*Tt%r0LoPUiz$t7XmP&k#{oeH#~xIqa7+-RsUU z5#5gX*p3N3_scH_0D*+rw2^0>(wh6W8V^2O>%LusoF5W!`m`x`JN16kMgd14T+wcI zt627c?d3r{^5r9|WA`wkI9C$|@}qafs@8h-PprBB(i-2VB5?VDgZfwrK;4xoV;lwojt(y%fQ0Q zgnVAW5?E}d=dAB^%k^kJmHH_Us}9mjo5mpy;>oU;Z?Q64R2Gs|o#Adad_$Y3PF;bR zyYPgg=gG1-VKRBQvpRx#=cw<1Fr)*do<)ECv9K=;0vuEzUHv8e zUGKY!VMTx&`W@VKsL1YXde6@U02SFw?3VrSqE42>^0U(MJl-$A_{QPW@d@;>&VpaDfiHiJ+$8%QH#-)Tb?qFe zxc-@xpZalp;l-d#aYygvcLTfv-5)AW-UzXM=NZQ91~$fOHalIoe0HUL*`G`WQ9J8t z>Rq?Gkw`%SEg{v$hYNcZP#E*d#WXI}Zy~l}7eac->$5JezAx7Fa+Arni8_G&eGSRh zlaV>arao}XasELtRh#oWX0=vnr5-riWN@=`Df;Vs}3c#uy`;cJ8< zpBk2|;;TSjr`?oPL2?pc?afN{f!NIG$XX!$xGnMoA9Rh!jB^!N@-fPsFWO?n{lb~^ z`tHaRUuAVI&{o`{^PHkQq-d7nNSi7SX%+5hr(ijY(`T%7#h=Gq*@(HEZB=y*t7jYI zONm~y#&Swv4@4iCduSsO7rT8e<| zVV}c2{))MmdhuC-_UIc+qK{8IC0LwJqv0*rxY7*boS!J`Te5~$#Hox(TyZ*JtjpH! zYIbKW5eZFNfQ3O&=iu%dVr9tm*K)Iah(Q&{x2WVELb9!U{PRHePy^S}D)}Rt)&#hM z*0P%qck<`#*cjVzFb<-YiJaVsM3O8iQlczbknoYjk!zHdnS^hrdA@JNXH#r62w8;lf zIcD079EFn8e^)^)Y;%xN*|v6Bfp+nN@w^4l6WyX`_u6yZW^&BK19~!ZC9-nsRQ(Qp z!zKqu8KPJpX9^p2B($jNLWb89uu zY*;4wL9p0}k}qFNKKo2QJcupCGOzYSz8ZhQ*+@X1q~5}J=y6B-s@=hlFft+M@a*VK zPIn~*_83p`!iz5ouTbKec9Re-h3%t7R@Q{`{>mS#!whZ1H~Fc#9$6;{N&9}HIc{Rq zK|`u;%b|CNvvSg?Gs9t1k*B$f`JR;)-F{IhOgppycs;Z!i8RP9@5mhd$k7!fc7>8` zJ}N7m8>$;6nzoYl>T}vlr;=uL(v;D1CVk6#@v-1Et9`cMeexkgIsY_O@6IBhEeZ#TpM{&J%2qzeGvv)(yoYT1tZwl|tuneH^$F?b zY$+tSv-%KI>9u%CX+Y$efJufEqW;u@CK8dmKa z=5eUpb)4#!-UkJyci$U!aE%|BP?{rxza=f7sWpD@Z2URfXt-l-aIDTE0Hm4I5Z7s_ zJQ`CM4fB%5`h$iQXyQ2D#Fa?n-3j2!Yr=Ik3BGIsu&}>AllmY3?Je*CC zq)u(Ls6Oz%@cdnSD7xt7``$sZ`1e12(JY}iqpqPjBcl_%W8)KVd&W`H+;634Ib~+& zIppRS*``uUPZgF`>Qz+LYSz>>syEPDjy1QowB2p&=&bGTsk}!o?H?!_x}P^Pnl;Xt z-dXBjh7$6WFq8dvVjYH( za_KkDes_vDl#}Xx>a`CAMiSvu!%B`fv3IyvyqhtQ~ofhdgwFaDD$BN?rxI)PLuv zSVd`&Z_WMW6|H2GtOKrcvAh@cx;uO>_7&~NNV$?9xSK=82z=%qes@4nOo3#&_DOoC zi9cP~Igj%V0x6+@rN6wRG=t)RQD|yuyB9}5Eb7&q@q5#U5W!KwOW?=ew;eue313K`}+`%wVo zPFEooop0ln5@OX+n<_$2xM?RL)73O%^Kdd+jt~qH&w5y6hv*k+b~^T)EGrd&lFs`U zSF+y8-AW*x%`|MfZy)Q`{OZ8?o8U=}M1B@Ut4nWX?##H=9>DMiZoj>|81o;~i+_g~ z-*xSD8WX!0jV}Gm=u!VO;(HQ=fFQsN01#Nz?P}}4VI=@CJpBLq2NYq@H1}Kb-_9-u zkXK_o!~EwN#6`wfu!;mWZiEOJS}Dd(O5?wmDOQU@oE)qz%-w4`N zHbVkR?gZB@JU>B5&E^IdAv`EVTbShvo=03e&^Sy4g_h-wh2MsH=;77?94M=e*@S&0{2y6I$wL53u2fRGs z7L9?GC`!bl;-Wyx9y!-EU6Xd%dcY{1qHlzI$+E5I)e~oT^z=dtg)1N-Oef{?3ryd+0@sFR&1+W70 zhZyU@|6R|&N369V;HVcX6s-J&y2^^NbjsKqb*I_Ud0sp{+rLbB&ODi{4I6}81$Tod?bjJf@q1#B}Ge|iNJ9~1^7h*`9VQ{0WJ{<0Llu=^5&JB zi{dM^AQ581c!t9dNP}X4B-e%32y@|qZk=<2AwXOBJsnXhD2Wu(zp5P})zdlFWZqAh zJwG`ujihTYgCn>xVHOG3%kxvo<4>D-#OIRR&`sQ4*+;IPX}Ce8Eb3IB8bmY*Ov{mD z;Arda1VyUO9jF@&HL=dZjbJiorQx8&a1mFoJQN>&(G{oU{bVtq-%mOfS*US~i}0_^ z&IPal@)8Vfj{XmAMpjdZ=4wUe&UkFS{cX#25~)2T*3NZv`diq*C`b7bg$oZyd|zCS zK7x%KGk+k3=Q*bX4MXwjMFz#_Vz9vwz)=`)X-PQe%*Kzj6p^?L2=J%7gi}i_%d}F{ zK|zT;;9q380M1ApHWk(mk{qXt|9hoIz#Sw9ci4Hwno2h2SeB*Jt?^5#4E|L;~xS>^% zvqNGR2W|lpmpxxE_7B_?msrC^q?X25hR-rrX|^G(h)nW+{}2 zR1H2jl@eZfv{^5rgzSV;^Oh?uwvu)-c*Kkt3BIAfOg&Aq(^9ugA=BkKJF6^A_$fST zhW=Z*?E=6%GAC#yZ=hf*onhNvVXLs~E;b$qwf2pWllV|JYVCV@`3yJ-RF=1))HuY# zg&$Si4mF$B1@dnMINeJ&y?*qvTHBR88FTzUMllz_2FMFC-jUw_d`D$|G7{MA=_(~0 z%A|4T(p6PHR5NMQI$kxdf8(`^okr!tedT7BMz+^~qSGrDg+e2Ap=8Eex`|?r)QJuW z)y0q_^qqzAXU-515LXtiTpafW#+%AT3f+Rb=JH5sOIGFPYl%uDa|I=Qt^f7LYW_Qv zFGw+yMGhh^S0I0F?&wp#o2M%e5R_g|z87-qAmy{ssD43<2;VOK|tt z-XlV&K37B&EJOw6u{3jSahKsZuTkZabh`g#jhHU_ZD@&ThmOg0mDPoCb~>cW)<<(O zD;SDlY;(I}2#MiXj3Il#k8A>OAaih3u``ruj_$~eO@c-=;on=ucaSkCX^+%A>xqUf7uk4O0& zhd5;7!<%CLRpkwQB4(dIyPI?-{OZS-oBr8KH)yh}Pa4*<17w_~%FYm6yF*o-%$Jsj zGxfD3;;eMY5JcLQ2Nz^@fJj&px9G5HAeVbQH$p0Ikj!*+gcOP9F(+dGre!Vw3&`^` zFfjSw7{vd@AixL%tD32M)+vZ-U3{yoYH-6~sWsi$%ua9XYw9ieqSs%=Pv{WkFe)f0}6HNdrywCWp6-LA@oCEHAD4;xf37pzSD#XV-iIi*45>$R%9D=F_ z!ijiGD*-B*abAuRT>xleKF_;t(K6Yg#~>0w zC~vk}^mmyv!i5~%ZaoZME_s}eanW;xX`oJEzL zl+{m?b|~_?)UY@e6m~5PKB2o9t1ms`!O4HRt_#5NNZ3BS^=Nl>Jdb$?bpQk}V1J0( zyffOfQ7JTXq50u+$OA(?){;dmtKVziHpcV9SzP35l@GsVRo9D)(0z9%W-u57*uugQ zM@tMZgmbwAk=j9r$?5^Cj*eX1=c^n!_`Nrn9l3wqAe3O?T>qKMxfp!d{BJ%+)j3cP z7&nQ|ARtfc0)_KOZZo^3B(MUG_T2MqH01(F4fw*)n0scDA zsLt*NZ2_)25h))e>o`&zGBz=31C?Qv01Uox2#+O3%3n(F{8Jok^hR^FQDwmEFDDm} zgq+2Z?JEBG$IM_9Gamtf9e$gDWLl0w8SFahr_sf>BZVQHI3QeSYSM`WhI3M%2Ww^)WO$BS6?6{FuoZW(o0K{ zXMm%G-&G(|Kfty`KE+WQSh$U-3AaC+as|$M77fsSZ`^92TQwhZ868NksP zzy&gZYXWh++V}bfwC*>xXiM@pUCPn(WaR>p;;~b<54E6t9i3vff3aI&Q0KYLpl*Bc z-XH2djO=~+_7RYg&&E<&b*0$2L1rWf5g@EI=6PSG<+0_9Qw4&JD>JbCLHF>0h-tNHW1 z_WJgC8Ey+8D>#B9wrPLhWf z6a3ZPvkzhxC^Y%o{6||g^QA=8E19xEC`X)Lq-&n_NQ|<3yn5pRKDD6e#_5-iR5H6| z>@4VWZ0D|RBt@hs;=ltx)poU46GAr*nbs{}%wl!!ba2zBvU2fSJU1WxJQfkIP2vWu zwizh)3elyh+0F;4|C^zx>{)vt;2u(>72--b;(rev{2q^5Fu(CbeUPTp446N#N zfJmFu`*;^@{Y{b1D0dwBcTYq#oY?Q`0vOD~|*evnh6I;-4K=ix0$=7QWs7a)_!CCQ58&$BMxZ0#Gvp0a|#(F;Fi~ z$UGcxqs+}qui7|?_yXueF0-3PxNgkTrL`#Y%; zu{65|MdU zCx8=S-h?lE){Ni+UfU0fm;!_E_ zQA5gxwcXqn4CX^b!I%e=L%MNld#y}qsga9xKwvL$g~MY;>NocL4xfugRx zlUr^mTiDp0Yr7zpG4E=@_iZtis2licDKj+AE}aSXeNOZdQk!SgTuoMjLR2y98Dv~j z%qKm(Ex(31t!!x>{5n(A0xhZC<$-sL^Pqkl*NS%`3?i!F^uF6%L#pf84K9BUF}|;< zv&sh9nI=Vdfw9UW4bv7#3I1&{0OeL!*5kw|;PKL#F{#8dJrtb?`Ehz_v!dYsV@6G;I4u-^)8R$|q2iK{!Gy=nvtHqA&%Wq?>`t(v3@C6on~i ze~ZFI?cB1QQr)VAdO(!h5gK66C=mYw-bu(7mAh&msday(>xx!~{oe}l0gkHYB`9N0 zfIOR-1)g<+gIbdOosS{YBR~MIQh?vv>%VHoRZCw-I)W(@!K1EH1%rpYCa$t$wMx)X zsF@&e_dy;Ui4{KAmAxxknt(j0Sh^M-0p~zi_dm8codc+eX$2kG^(MyeduW(4b*QqC zwOO*`EJ~f74A96c8v%H69cQBL@r6-2wI^HFp5sK97Na|B@Dh7_&uOE<6iX%o5G2IG zn9gD5gPc9*_C;$PDl4n-C>OE_z+;d3T>fzh=E&TGl`}UnEnU&ms#{8Xqda?xW}Cqu zE%$}~nkI74*6k8c77ZX9epS16(0k+JH}^}M)Q^#cV!s0h-o4HV7*@ZsGO1gS!?U-% z$2MUzQ%%Qosx8itURFJ@vyV0rHlUc1aT$3G{hj87lJ{mj^XfxA7$`kAt__&MGh9^jOtDDSP)$hs^#nvMI3tskVk ziUD^WV^oqKuHc$s6SItuNK?eDu{}=L$7>3T@%kr*x3gfaoX(>>ZkFS42>06zkoN;V&h#4}9m}{K( zqapxtHJl{MkAqw{_VJ5IvLl;#YyGKowI##;WP2~|-1HD#Dyl>WgUyK55zQ+wWE3K4 z++Owhh1z!;EA!ADm`tE=Aiu<081LXfxah+$IUGbJZVT{_`xZWbA>=hW&L~qDca!Ob6oHfijTrn^0Gqq zg!weZ7?t0yH4PD@W;HH~e$nCjT=vwgI2^w@GROo|6_c3jj_ zTTWNJ>*GU3nyCb29l5gi`^FYZw?^{^bC$GSAr@|WVz@FC_Ay?YdZ@6$XaDMG6%B7{ z!^2LaOEr8NdKknb6h{tkCu!xe|EeM_LRb&_JaZn(DcL{kS8Q6@4}VZyv2ac&Dsuw) zAxCdQ!#ds^VpW87juP9O7_qsn0DnFo$DS$f-U8?V zExzP7exjVhH74&=g^oi|Cr^V_G$KT6(=nM*lKYt29jmcpg=c%>9@zVYl8F%MH_GNG z1x<3dke@q{{8~cpOj{^#ohY`7SS9_c8&NVxZn^YLmL}?;&jp}P&tSS(!}feuypkW- zTlF=oU-kt|lG$y{q3b`PLP)mG{N%@w4v^@?GEcVduU0#uxV=$45qN{RALj z%>OO6O#X>2Td#j&YmE_GQB&?8h}73o$Z9qj(?+NQ^0Wi`ZqggFBVU-CweuCm2{JLs zFc$b{d%5w?_L7p8p^M2yQ?(138QV*4{@?8-UArVt|4zMjQ(6b5Osf${ZPBf51Dv5j z4vc-q^-m!+L7k9fm{yMjf&J{m(ON#^5;OV>f{$mqIFa=2mpX`#Gl|06f^WUa;N4 zJ}JV@8+Bq)m(fh?Ec#=vkYN`L z=aW=rD$cy;f^*$x&Z~cv37>dKu$Vtia_(Fm$;`19p#6Abc=plB__IR$X$h^HsG^#V z7k_QLOY&qMJW6aAJ8=F`cGxYSU$Lj1PXn;LBELf&{YGRB#=&e~WfO(RGf11Wj`*2-@D*MuVtxU*_6OlWDvI%3YYZ;PJ?WV@_`;-rV2oHR}ELz-LGM>Bg@G z?nk%P44C=rO84yc*ZP~Im;o5fMR=C4`}anldy}Cr;yfAH5|K(XZZtl$wTr_((y+Mt zS9VucB(HC$uhb5^=pU_5{JOvFgD@c#8sGCouv7--7?jFs7RDtkrQJfXDb7;TQ2fVR zG1pduj$YE}As>d?O0C{P?3~lu4?y=}t=`tGfw z|5=R;V9S41Tz_L>27Mfr{~s(&xnO_LJww?Xp+N<`|H8uP$bu0XiUM1nlx7pLk^hB- zp=0pEW_VVVX=ciAEKC73+a&i8-cmOOf6c(vC@}WA6FwEnhJkf z`wQdt*RRzc6X`XXnzZRy229k*&&{$_-v_I=x7bHxF7^~*TT?5WQGVM}T=Sf4Vxr=m ztUP*|OTi%dUS6ziUvceirTayI=Um0{5EYB{3;SHZV!K2r*4g^$nc8)yJjbf!3+Rv5 zPN^Bz+N;>#e}h+dh&yyc-V@yNEHvapT3fw?%k%3~ zYmf(DPp|aF$A1*FO0l5M59G+-Gi*2x5LiD1wE@=l7zu%W#hRTvR(?dqFn2QNCY5aV3cD!>REZ^o0Gxo@XuqD{Kbv}!w->!D6 zel-AiTM^aD?Sp?WpuVn}kt<{0~E29Z0Kc?4cVfW_bcg~0ti0BfAC-HkG?E;8^-7CwwaBi1DifbU3 zd(C!kkGsWNCmG+%HPKT6-7dv$#MOe?*ieECKAB|7EnxZk zR?Wbw2m4U;&Y=ij-aU&37xrP)R-{}1Q$b$vfN+X{`okf6q#oj@yL2TQ<#>g60IdUlbkBF5|7j z-}UZ&F(e_$1i}MaU1IRoSS;ce})GaEW7_I8`^Dus!{NuAn{GY z%0gJ1h@;th+l=(%&Sm_&v%3IP_s-<4&kkVZm(uBPZ*NOWX)F2J_8^QpUBf;`*ImUYXkBj>txh|Dr!O{ zQRnWggo0xCem>F$^r6>rLe z$^(fvJP9NX4}ID*T&1m zEaNm1`z%Q_+rS;$xi;Qadb;tEmOWh6jTi*n8*L9ktmPfqvy+J?0F_rv-dGWW zm=Lnt?uU2OJtX#AfJuICJ_%3JfN)?x*h{UVI?7(j`j1G+)Sv z7W_bJ;#5;*2$l_nI!;dwKQ{yd?!W7P`sOk2FYD^2O3P#DB!5SH<>Oy*^n6+-u&V!itWq_uVPHz#TZfO%vnJ7i!O6dj_KwW;{0>KMFxpc*6Np z&-H=%9)Qz-@@+Rfd96=j=H(?KktPKX+R1~6_e)?_npYGYc!*{b80;<_LMa74zT64{ zw4zabnpgK#Dy+xvDU8Ovd9JdVNN~##4%O+vv0GA(SU-{x`|^?5K@+Ri%)FtOO1d*Q6HEZ-B8vsJLx0_6aF|eT4=S9_1KkAM@^4!#Y8Cx8 z8a~mS5bJ`6Dr?#mVx93!^ z(5wtB=tw2;($EC_dy^VQf*!0Lwt9Rexu8GkhL5ff@G+SNG)R&q`G7c6g#3OI1i#Yg zB^&g-y+&L6#D5Xu{6|MBWwGKXc*VG1V+ z#B?6(iQ-{XH6DrAb6Ol?(e&v73L#%Thxj z2+da9f7I2IZ!0^b#CPg(GQ6|>GvVIx{u(Y7PPQEm0KWl3_Mb zf$KI0FK4HC!*%ZfCD8i{cdrECgzrQBAKicQiNemi!OX~*;VBYciE@; zPhY>G&n9o?yUTX*g}p4`~k32|{vjGCy+l=v%f}X`1jhuzFbPbv&n$ zEE6!%BiRlsD$2?Q%s;>9=K2etJ zZEZatLL zTaxQw=THNS1bi}le1PhcfKXimY&TS3a5u_d~#h!%r!v|AXT z@%)VZR0s}lTQ_J7#=s~CH}OrP%*V>$3@?%GWaUy@RAe&u8$Gy@SUBl_7o#Mg;SUOf zq>alke=#bjc_ykF;vJLRt~cvAjcJnx-CyYYA7K(nR8<2alvxg_%HsFB_TwA&k@W@@ z*g-HQVU~h#T_KnmPZhTC2Wxqt2QmEtI`JhJkrD&Nx}g8WP3hS04AX-g)5F+BqI0w9 zp#SlrBDjbL*G$y(Vx@N(ER@SvX2E?!bB|tz7B&jqv;M+9R@Lr z74rqJrkg**P_`3L#+SOq%)ycgp(Z^f3p*}C$SqL=pGm&M!QsiC7)LdU7}y4`@eWX= z2EKc<GuY0fKgjb>C-+!!*-?o`7htD!0(EA+H(`x@&O-x`k(}4)CjrGq+)E`~jW6nM;Z^LqC%0_O*c~<@+ael-I(!8Wq*M(JYLd+PHnG{yzB6 zLy_1SVDr|fF_G5FHz>f~Jodkg$Y((es0Hw)f_#T)(r-4Xq2Vl^L*ek*pi7y$3Zkev z>T3nW!)AgQo1lOPcpH%vXbwN}(*y><=&8&ZC1Dum+N(qn|S8P>&rPqdkpslVyTLy|dYrnz^>*4+>0Kw-ZX{oXt45 zPd=-1W&mE0LJdljJ&=$ab55|3!S%E(f;;f@mz&9|*1c$Up>T%pjxfR1IZ;WpJT!q9 zhE~r_c7UxlLx?qB6rs3H%br8*W}pulF2ns5oAa&_-0Z@oW^nmz(0HkpcW2t{;Sypd zDMde9wM-8A{(_Y2TQ~MsG;Sg7s&o3hR9I=bN$;%nc0$%Omu|t$GG>3&IKOw*T>jkX zY~Wk@bCVoIfk~#{+TgZoxtEvQzBwgbXC*mgK-B0$$FY)>Fo1ABw_)5@dBxNK;zY*A z)SeTPgehSC{PhEaPYUBuVICMns+R|N-rZkVc#AV7S0qFP7m9XI;d5KDAPy;v#yT2r zbtXr(wHqTq6dDvsx4PtP-3En*-@4g9c>5;iDgf)o_IETh+QOdg_d&M%jPIDzsqq7tSSa{$1nPZ4 zrYm$(_wy$t0I4$)t-sK1Vso(tN5`9F&&?b)3GqyMceCvTNmBtezI6PxTT00~>);5w zKfdV^r+B_f8wK=M6Sy|nquGfc$Z*rEA}6(534LaYjC8Eht`J%h)bX0~^25q^uqx>J zM67dzvfU}OLh*Zwp!#Dd>Sx?`dMw3gJ0|lbp?pkA7ll%IW#&@lX;-HDbBEoGFiUtB zOp@AnGk*E7|0tE4Gv2-sjfTEhAW(hST1ChMsE;&QpAB0^#l(%){Wb2Ca);F3pk5%J zB>WSRPhFm6sSj*EV7Jn9dFOuIxaST3lwPOTn@q41cv@l{Izyg)X>YE#7!*OI1&t7e z(GVm|NADmD>roJ4>9Q?}4kN74woHtk&V$H!@(kbxB;yoCOe{UmIqdGP(hKpa*rUbx z@a@sFY)LUnDQKkWo_YLjF}n;@V*5DSVV)f=Pd1y`Q5N6-)5J-H?05_={o~GKfZZvXu)<&$0TNkIgyS>Qk0=FjJf6P`@HRJh#B=Lflt(1NnF(wbvCHtHOUy0EmqfKpQ_-w*y-L>V=2_V4$siimx%$I2gsqgxlr%7L*rR^K*<_>SWwlSyfY4Z(-L6g%&{% z;ZL@Ub{=2`GNoW_b)(B8|~(9Ad3oE7IwTE1lbp^58?XgHx+L|&qHKsTwpFv zh)k&qfo{%}Mcra6QD%e72KV>yWt3Ds2uKUe)*v=>Us=7qxTl3V6rtDK4i!B$IzMKm zf8B2Kfh@zCB)1zaG-g`BU`7M!2E}Jr=CFp*6#!AzafRSNuuWD?L-JI;gHp38?eZ>j z%}0mBr80eLMv{2ZH$}&P*(uMUKm#0+BWbtR3#A8Ka__P;eOTj$eKUL3S3p!*6(T-= zZRIaE9;lCFlpNlDaCxdE;89mcSJ*C#8{2vZlIuklNS8g3J7>;};~(KeB+?I)KP^wn zoyaN+trv5gZVi37@4EDv)1R7py>D=&{t8`cYwpgwe(rO~2cwyT|1gFJjA%@A?T}uJ zXJkHO*c$eyV2lLR0F4Up4PXw~Y|KAj&`qV{lMNJ4*7_@__x)x}Hx6jn++oyeiC%hQ zt*O%iZP{Q=XPOBBGffR3M z&%@v&n+33El?L-hQ zW;66lIH{LuX3>=JtT+^!G>Wq~!6kcF$)G>sY_Q#{`3e{rhb3+beBCfVig8#;GXVuG*#10!HFMcC4OjQ?4Dj zZ<4!M$ZW8lERN_4dDkc?uO(?Pt;VkqlDi5=Ah~tXyL@$AxaNaEkFclR&#V~F3;E^J z*kYxjcoa1wr9bJ5Qhce$-GC&mtlIFp=`25kn39M#*3CMz?GmP{Mz4Ign_4ZEQ_@Zx z-PN&IqBC`RZaa&$v)nXibIqGa2d1*`$XW z11}j}C@j*~zkhfsAndRb_|;=J8VVC^E~TLfFm9&k>j<*#esD4a<*mX9qU{g1aCfyg z8!f%>dW6`#PLs;6s4^u$O{haLl1*N;9rtRQnG$IHj3HHx$LH{o5qQ0QmX`Ke#^%{t z7#Z!ys0v3LES{OBfnPi%PLEsVL2=mEvC29|?lb@=%h6-2%D2e+8@F%sR+3i5Gc`dI zK-qTRGn8k6dQL4ZM6L-9fFNOIk%6TUm$;znN*-6X?-ZpJLv98jIKHY3ikIb6n*`bm zfU@|o?@y{rA~DjXw>9v0B?TR&;SeN&LyN3;oQ(qjN+K;6AmVw@^G8ma!!?hPmYe$m zBkBqGpvkw|w{}c7G#U`=mkl4-t2Z~lll4X;1QjAPuSTlG|o80 z_WKJ+P`AK0$a{pydqAbR_mr5~`z|I#o)BK2iQ~MTSDH~H0tk2=h)aC`-a-e&_7J|f zcF)~O>VSqDtxBVGJrdAz`pvbBMEoZ`c*4V{{yGQ(2c^9|nk?komY-}qqcejH`O0;1GU7mh1mJ9xRmL^Q zO;?j4qzj<2Xc)s&4bnmhHz@DqTvd~mC}vzSWJob?*xu|a>rqqWOXDesK4VhaCJ86~ zyXE?P$)Q4v+_)*!R-#tAp0L%Au; zWS&vGKI?aE#BwjC*l0w36>Doqljw&}=VLK&0%3pOEM2Q$FwvYqvmMw9-+`S)w8!Ro z$%(Ebk*JZmT#?BK$;u_}hae~mJZm^Cdqn#Q&h zfi#%1(8^ffUJ%Pw$=cbZfTw}D$9LlD5sO_B{12%m~qv%H?zmFo!54+ zUh(er+s<8Yu9Q|!58lWa_PF`#?aPRunT`Xh_Kz6v?C;(E-u7hv zTlu2ACNqdKTz2MZRm7a<0*@T}BbPXIWe_SZs^S>I`nvUbml1}l)2_8#bnX1}r&!h_ zy_;~m!-8cMRet&iK{1M|o_L1Wo^|FADg!lx7c?joIku(YB?&6M_x{Y;0v$MZ5R{=@ zCGT+Sk9OIs;yp#|H4xRmZkw2VGE-J0izGCt1fG~5J!@M|G11dz#=#uU-hbQN9*}?* zF01?kC@|;wUI4mUfklyrd2CKLHJIBAqS4Py%@jfbNH(U44G{yZ+`CRukkVVE*7pU15^! z_Lkm`MhbFx5WM!vIsg*@5F_VIX_7SPGTP@zqS4hkg=iR}j0SjOSG~RU%$XXZA^!r^(m7$||NM+7Z=0u-!l1bRD5?kJH< zq4Uo*m%CRk-y47k;AtNqMfB#{o+K1V76DMa&Eks9QvbdS<{P;mfxq}A20luee-lUw z%9q^eHe=ngi*k`M>s@0l84K){i()P}0AAz<(3Osej;Cj9Z)#5Ox#Lqj?1Y(a91jFt;`H zXyZdjVF-sQ_zXmac?W;2A@<%$M`2B-766tdNw0P$ISO^woAnY+jW1_ex#o4=ozG%4rz#OK9MIJ|mpTKdp zPTtkW@ZkhrOK|2}73(<|$9>9{{Hr3o9? z_($MRKo*eSn7oZwPPUTl!3vwfW-8%cjg}~z%pGf>GAt$2rYeq2=$JIQSAb?{q6l~= zBxrX<98?EFqdGL}BcMzZF;`3=urX6u6ATo}ax-AD&m^HztyyLp8ZUhKYCjGXr3+8^ zPE9vH6EsS2ZOvrk{jNe`pFW8q@kTM1G2i~WDl%S2a&x0uUy8Z*RMvpOp)rwo1v+g7 z!4!dGAu|WL0<1FrR=}?W5%mbCF;#N;jG%`!@Ov&ri`#MtJY0{k;J6tGFfBp5SPc_~ z8;guWqPUsp&m@o)c@9CdS5J;55tV8y17Yv%^UwdH4^LhVVlnEQ0gBidWumi=we`|36at<`I*hgQ42W|`bhjSpE-cNVq zH)+a4Rs3nvv}{_i^#3$z+Tr(NB|J&}(sW{C_qp_nPwPxdM09MN#<}>!(=kb@@$9q= z$CS*R)12G_qwK;9j`<~}dyC5|jkr~{>J@d3duy6n6dGDP)SEBYwRiTAuU;$b=JniA zFu$48H`vh++`gA~cckh5@WaHhC$*2jsfp*;p3cNg&X>$BG8bMKEG?gT`yuoFYS_mw zsh`(^zx_xD#~S{Md3eH&cow0egpCVw&tVCE(N3Yj75aCJZVeoBR8_o965sFpks@L; znCW1$UMAb2m2o#$)2c6f^<XN_Gumf>1U zBUaOcf0{ITSQPz@oleM9;T32vS@!gQnBkQZT+<+0(Xioi{fk@9Hi{wOvea*?OinaP zTv=nnYTp10y=0v?yobhG`?9hyz;DvDFBwE*CtjT3@?hv6lSsXA(G~nm6rQ{D>3Z}h z9RHm8UGqE7Ctg|7cqs)q zd^AhP?Casky=J*Q=o|R&CQYhvD9)$4;_&|K-zpAmw_?1^7VOv=o#j}yotAVsUe#Lz zjiq`!Lf0I41+F-@e7^sVoEdho?{+2>m+$ndBNrlgP;oLl#%u7O@j%W6FLxi-7S##X7e zqia<)uhS^j^%Aen*}GYIFSWPumh!2&qC3*sDy{dwha7`u82P(eWJz1)Iqf?%d7XOx0iz= zw4V5Xy02qAbn=1jH~(!Qs=bG=jgtsyfACVS@$;CO(EZO38Ml{DjoUix)w*wgta1Cm z!4vPkJW)T2`#Ry8Z25K4>2&JXDa)e!U#E?`ao?WqtGE32Olvyz+jF|g{ckTK?%~#E z$ZsvzX2k^3*5(q`AFR!9+9UYaON_bIu7!Blzpq-tUPi<%a<}S=u7fjT&F=}N)mESd z46jpGQd8d)VLnrK>$dqvOvyR^2(81KC$UenOMma=ue_1)e}!~5pm*BAfYubP+g>*wdJ z16O|jl#$i``^pUf637fu=Ys3@H(+W((c${UrvR!KwPPhfsDTLn+S!Zs#m7i^%E0$e z=n1kIF!IwP*a3DQAuvdC>vFz;oDW?%{zSZXth=BWTVLjJP=Mm{?8I*C&5}I~wnlbr z8Ug5*xP?!o4c!7n2AIm1XA&8@Maoqs{R&MpY^U)ug2Vu@{_1RSf;)LyTx!5T!c8;P zOGZ(q@hVGg(uch>_NeUU-u~FobVz`|UTRss@m}A6RNNUF(az1d9X`sjzISUtziwi+XazJ4UA!ra z2ax$=Y3E(0KMaK2t2=9xhyS#IVxo6WliKnbdzAZ$&EnoWM9+;>Old*^5Nfil_W-*% zU0h&UC+r5kvQXLmr1n8r>!%CvQ&ep(H*u008hwxSJJTZ-7f{@-iF zY~69sV5c<|FuyMVPgi=WrgvuBVKk7Xh-wgu7@T@+rFgNeG9W-z0LMp`wsl`SvKfYY zI@6URfy{0Qw#*fn6F=QK)DagFD)8(&ZfEEEaO3+&70J&Y`F``f|L*WDu8S0l}Heuc4NjklRrl19B-C2mAPG6JG({ua%-31Rkxk(nkkl0@|2TgFig$exl zMmFP`@I9RYZhvrcsD-1<2c4VYUxJe&WIc)J^9PTKX(eVf*ePwA9JGu-8Mp1*(HnOp zJ#xFXauSLc)V964D>A*B**&!Ij#<#_z3KyLBv9G86*Xeqie?XJoIH2)W18_-OJ|@W-qF;gaEpFAj#XI@H zX1o5Prt>_}9mQ0WRuJa&a41SlS`^(O2B7oN>wqu@|#h!vOVbaGY z4a_5+e84cypb#e%_(hWl)tCr?ofPC89k0MImqbVA@6Q49gm%RcviB&%&LE2lE&w8` zAVEOw488&pd$0v5+Jl70rQ}zH;UT~^hYpOOt|-Fai~n}1EI*HcjDm_9-bzp zL7;M1Rt)r0l+-RzSKgQjX8uPIuo=)818G13F!lS;n)~1VEg6eMuohMJyT7Hl6#nt- zh*UVgzh$8my_t`#p@lf{`&;_3n_2f3Hc2={#Ky(ROPx;=SBOtb50gBXDe@gLf^sd_?wsyuYUWEK z)k5!%hu!Ek@-}e8ksrN?yiA@l4mjJ{J@dxm#@I`JXjJ0)lDA(MRFNqkpjdT}PQryQ zV}?ohaRYWRM7xats!RQI|YVE(Z{(=wBC7bXk<0n)B?!_gl=6ov8+5;Yzj|UUge;C2HBWT^`XsR`s|T zYF6>nc`PQT))Vca188p^#mTB&-Mq^!=1S)-^)Q~mj%dd9|G&Sbp&5aLFFomnh7Zus z5l)ht@8`Y||1=bR%XQ@Ro9iEYO!`?5Yp#Vm-Y@KcA8#2BX9B%?A6{IKfg;~e`@Nsv zdiv9mjsBM1gPkwy-%Wa4TRLRLAvL>!-`+p(P596x2j{Z~A?$GDkPi`?{kCsSTtAY0 zB!-}6RK*Ew{QEnD!?KHfFQ&)Et2&P0nbsVe1BOq8g~zrO_Vl?C*zL9ixU@*=I@)M6 zQEV`d5z7IQp~RD-!X~N{^!R~{{8%=NeRT$}hM5BseC`Z-U;;>?JX8xut1M>UzKj_b zsnHk~>)_8dPdCMs%4KZ!ap2;Smuap!=4;ub&Wom!wB1v`kjf%|7wDNK99nqDR^HN7 zYhb9H-!jjpqbBjGw)PROY-0PPW2M^_d|zFV8W(-6voaA1Pf1p8DM!RKUvZ7i5!V|+ zUf=b~#o$ob-8rA&@l)2as|DW`z~)Hg+lIEgg|w8W|Lt$-x7;$QT)*5pwBzl+{VnbN z-fa+~-d%qB{}H18^ta?Aq6XAI^n8Bo_u<;wV*Q8fKfk{Ha05W{&rUG@(Ww`u^1nwX z%?=D-s0hQ5i+E5W11bnZ$x?gopnTq_gP;L}2E(IfX&_z~&x5Fa`p$%T6Zz#76fFqu z1*336nnbjTFc6K(;6dmFjv5Rh8*mIFViLq0+f3zJ?x(5nXi!j_2l!vGe+D9Lz$Ln8nf?U#=j7g@RR_5qz( z!UNJ(fL(y)&S!nI_9}nz<_z#NAp!zxy3FDI=|}#0TBR1aKJad{Esh8D2<_v&Zxv-; zt;ZSgegJlxZrH8fd3Al~y9;!_?i6A0AmYoQOzJhfD1jLDdY@VlpLMJ5cJ9k!^`&zV zuY1?tLPTLft1!aI`IEoC7HRB<6n&UF0IfdwR8nxJ6;dqdDdYpJrwph+&?JI*|6b5J zs1-rQvGAS%^o$bl9GA{gi76Q6eB09}?01e7%kK~BpyOV;;wjE7kaE;%kSJrs$HWv0 z1nAt5+`&5`IzbYOn1Db4KQ^U;2$!K=btPFR4z!X`Dn$MEzkJzLQDC-Vu%3LGn5;1* z^Eq<+jjfo*ME3@gSlnY4b*veFbX-g_ZpKK|TkgGsv%kB{Ta#EFdtbFcZHUBKuiJ{A z8qNuyt?_?K9KS*NW8fG5zsMg66)~;+Pg4hV<^O>4HU1lvuM+v+p#0Yxp!{2YBsCZW z$&MB<`5#ce(Ql2^A5cE~Ur@fm1}EPu%MXCVz2f}-0p$Z$3dQKEfP`j`3q^Z`E|Ot< zRDQR$O?z$0o?AdMbWowcrWhwY2=yBo92*<0VQ)yxDyp819-7%8_+&*isr76I@vY9-)7Kw#q&gwF=A42w?(6i?Q; zC|~GXY?V?VipNvjn7d%tH;wWp9@!#_h7wMpq94=s90)56ZHOoL)RKicfpRb`oKH$q z4%k4Y9Zm$I{;<*{jQFrLS3WEaV#BAUMI2z*L^5iu_^5%6790freMX~-|8U&zho9Sc zI02Dl!qYT$(MlaI{j>{C#ZM$#YXjl5=%ASq>vJZgkzP;9Y)bB^%95T4;B3~>Tu@m*^^CNH4B;47Mk-Mm6oWt`*m5T* z2hWQ^A^7KO;ZoVjhI#ot=;fo&%uJa~6(HZ4Nf=R~-I?2FIT&jcfdIAb-!8MC_&n z-#bk+k=Q}|n_S)Z`CczzVJ{~Mzr%>z81qg3cd@_69J&!k7%XXU-i=6;2J>SEBXmt` zNBp$ZF(iDB`jiLWUkF_xp zS^k91YC7>J^g!9R-SAixJFeG}g4&tQTsvwL2IfN(U@J^PMLn(zxd>M} zD}jMxLQjK81tp|M`cXv>83-LRcVzF`wnA&qQkrtQLj-+)w9F9I{q5%IV zl>CMAoc~Sm_cu3igN)xF{B9Yv@xh;U;`P7lM2qTXoA#KgaIH^re0s@ZCQ4tc}c32F;Rs~e{KFwda z#_>osF&O`-2Q`MuYaov{9@8gb#lkLI^;lm!z%%+cHTeTtxHJuED80Ou zDZ3^4zKXW0mrdm;oz1L~loWf5*GK2uafd6Nc1M}SSSoX!BoMVXO&Iw0M<()8p@yX6 zVM+u_lmV0&8cmQ+aZUgs@xF%gxu;c-%7&7s!hm8Vza<4Su+mw*K~_LYwi3$c>$9X0 zCgCRxWsq_nl1N#U0A5O5(F5w~4az?7Foa^VE&gkufBz?Pk^dXHjlB&o&?`#Sv4+gt ze5HUwnISFVcxO1ni)X4O9jR5AoPDkIWsbat2+|Ea&j+xH3keEfrDP*XMDb9%{JF^d zqxy*%U=~sii&iIiMDn3J?y_Xn9AoDS1QZH5pE2yRu+s0j@m~{(hWtB`$NzUYtCDqC z1k9js1?Hw9Xy(??iAt-!sTb;A0lCmC4Bdp?G!T+;ft_UH5N2a)rC)2<_)jplZ=@07KTrR?(Qj-LPqHlh2g`~NoAjSueiq(*z}QO$zBMDXID@pd%OXH7zQxjVWp{{qxhiHvWI2!CgTAKO!odI5Jr< znYkgN+kKHQ#x2xvPS>yFD-X0T4Nz$>)ry8UUy8hMb^Sq5p3g|rba~^NllJ4Hho_@i zfbuyn<(S0Ki1?_ucxF=O;goX4MYa8mT>ROswo7*mT zG)n-*!OD>GD~(tCZe8kczuh}ig@a+N_*Di{WuoZc|xX^aM9c`Os zwGUyW6!6&MxOJ*!`IhaB*;?gVn=CDGaj5ReC5E{ab4+MJRvAVlGP$|$rY;8wlL7N9 zO+|k1N*rT8mYG5Yn42w7*l_AB8n&$V^*dy1_O+;d?R;8i>%zTk361C2cFmL?tGi!w zQaalgZWSMVc&b6-qU&8j+j~`SrA}pCE6=ki!JoPOp}ONvm-77|SAvUs4}Cg&_~+G6 zoI4k2-p_w@ez6!WVppBJ)?Kk|Q6+lm{k0ys74x8wox|60kxE{QZ{wd`zh3ywbUYoo z+pXc35+6UsJTEhgWQKp*zEcz-p2Bb2tkg^^fD7l-h+z$JVU~er%SP++W|C1mdA{hBjnEp+*DedHO1b2@*FK(45y)pK|#GSS&}suQy5qt01mfY0vJ|13)tXdT$Irgt( zwWJ0>?V?$fSph;lh?7^!%``(IWN92dSj=&*d5L+&8%55GYlFAoiYbgY=PdJU^z^U| zE72-gXABdWvRbMF7s=-`k;IoiN^ZGT(t62HN*vcYok?0PdU1{3%)T_$C^z~A8OF*| z$6n<-G>rIQ;rq5Vn;G>gVcVKH%&Xm+K$;v!2aUdyHn|`wAC_32rX0rctv1W1=_N-l z=4T8pX;}vt^?i+a69cW7IV!4KHuIu8>gAcOz!gZOlC^FohK7b0+f@&BH5A7t{@C)d z8E!dGrVH3Q1Z*ctZ4;(rkmkKSgeXVW4=xnuuarxR*MX!<=TBaQoS({lg{EJ@@@g@k zk1-#Vf8BLu#93uzKHcrDw+u9HrIOfOi8Z3dYxI!IxZiQs#C>$k6H%>daUrh$o*O<>1m0=2foV2{h}Bka~RFK zFO6IVAY{qAf2Et6oT%iP5d@nM0va@4?u$dk)yt$@>1{}pb3*6fuZGk7YL%T=m{8S$ zsRzR$Rm{F+B@>{Fyn8m$f@8d?u^$smVk9FKxFD!o19P9B1n&)WDX%>^;D`YQyuVgZ z_JR%qBQG3bK`aDVYjL#2HQ&RIBXYO;EM$TfvPcip!?xy_<4=SC|8eF}R2E?c&2OI_(*I8HZopD@}|t>e{vIqm4A0 z3&hT44T^ElmJJNZ4j$`x!MdQKmh;ad2a8@3@2I`Fnt$f`>{-Io zi@|AScjZ?`#IbIUhZ9@mnXYQRr00J^d_yZ$KoU7u3lc*w%h;-`3-L z7HPMo;0>k9>Qd`!XLd|I3sh*omcaEf&^x+2qSw@t!^qAVc?cI%=<4`)jM| PuUAT%v;hbU0QUSJ>r{fd literal 42195 zcmeFZbyQnzzb(2F0x={BE-mg}plDm%p-|kRr8q5Ctdtio-r(+1+=@dXxVsi9Qrzp_ zT-tv7JA0pf?iqL7zwRC5EJzqh7VxY!fAXw3=d)DQlqDo>lE5;c&%o~u1OkD6%XV%$)GlNu@x0ODl8EdaPh2FTD8h%*Y_;v{2ZW8)MQ;XvHDzVgs(CD z-fH!()e(;ee!g-F2?+@g508n7!D6wAiHS)`NvWx+Sy@?mwJp!nT3Tw;ii(PAYoC{u zl~q(!R905j)YP;*uWe{(Xld#0zI?QFx3#r(c6N4kb#-@l=X9)9;4AWmHWC+qq#fcL z$JSpgzpp&SSO36w9N@e0`!9du7u)jJM>;=Fr=Bl0;g7TNpYzT?KgS=J;mFbpKlVT4_wo4i&!5jfN7fH@*Io?|TW(dowk*nF( zusfD6;{1BN?Zy67zCz4Zt@g&lxiY;<%Zc`; z?atP>Z-$e2ttLC$-tSKrY2<0YZ2x$?{K9!-@@2>8^Ub~(Jmc-I&adwe<|?hGx?X<& zeDP*1?{;_B&+lK}A8$-`cV7ZS#I+d&p>o&^hH;c_h7eyr*bGG}b8UrD7&>f))7X`5 zMKE|DY&~U);M$I4OLf?e;wmlMj^=AV*p3kz&14|mh7Be?g{ZBrfhG8{_F_cC3Y z5BIX%2D$gMy%rt!bA0#8_j3b29q#7^5%C=4hfz5l6hv}V92CZ0KRPJFD)Sr`CmT8) zmZaNN9F}H#A00l=kKj2fD^7JfDlaRoII5^>K02zb8^rS*S2Zp=RmPopk&pA|eKrVVJ4i)D` zetPFfM_9J)VvzT|^TXm;HCVsw#hGq`x%GKB0OhOeq*iP=*Eyv~IBknwlaKBCr(9v2 zKbm+;wppps^Wye;Ymh6%P&PJQ%1|b#8hP}fGf9fenpbf&_7N+jnLDzoLF;@xz!g1x zGgYWrq0{rdmcDgmzwJ3!uq&m)($3h(4UNV4p{29g51I<*$2hT63r}G{!TgGz!1C3Q zSIo<%{LLEb1UeyuX-!2vO`27wvuglTAuY?26W&@}?MJyStKSmy-g=Wl1|yCz%shJ5DNF za=)Llyz0t0?+k?m*!4j-bl;{i3oZ-!CzS`>pTdi25&_va?LH*gOf7v_mUsVo))d+; z^YN8GW9g@af@jp9S2OV?-=6hYQGX}UZD8T3GZtnWeN`%Q7D)KS z+X3c6SqO6(69J+Q2RE06aMEm3>5d_hctVl>x>g}(A(?pT2Xcg+QO96)9Axe6jv`Kf zhF3*j74vjX069GdQs2z9s5zj%_JBPG`D**&d@xMVi5D!-1*Sxy;o3TP(FVr7sO(7o zfF4Z&yB!Ut`Vi%aGI#Ma2MFW3a`BIb*oUdm+G+`|sy(Jl4S>LQuUaRC2+xZE zRsKgsNO3TZuzeXO94)H`aN(>oV%a}5a?8D2c*Z)`Nx~5X2NVKqvzNg+X7Q5B4{F#m zFmO&+A>9e*h#jg)eNMAw6FhaG0AVh9g1t+?TQS($UAA7g?KhtewMV{)a0938ziRGl zESnQNB-L3}Z44GCbP(kyd$fCOd#DA(E9O@@K1I|}0-D+V)EopsME$VYh|;N2e!g-w zoeH`si!m3jEk!Ytppk~KUN-31}xCA_?cI0C)b# z+x3(|m^FjoF8&Gi9xC!4Q_pBy-3MA0X7V}Li_xnH94Bc*WY4$lq*s(A;&lsA>19Qk z0y%sxw5*nykiJe*UDswloT=|gZ`(>QM*t-+-3Kre_?ZiQAvY*RQ6iQ3=M9YrF%RUM zJ8U$+z&P*#f3HXxoT0TKU6W(6wu z1oja4gSL4*O3ND%G-I%ugggLlTf!|WWl}m56UU4>hSP?wImEQak53W5lb@B@j;7Eu zBXv;BXcB|Rv@VNe8=GqdeA~Y1>Ai);^k5O7 zQ=Qz^vxBGmmlqH%ByrDYU=1bb-F%0C&F|O)S zc>O@vAE8{`Jo_rc1>BO5{;QC0l#c#8lozixHL~g`X1eU>-wFU1uh_#`&GqGO?miE+ zDWy5|K_U7A&(csAoVKKHPY~CA=bKE(3;xL~5V^)dZharrszlk=4CUgK%H%ZryiN1gM;&WU`t?|YjR>Yj3^_8LiT)uqTE9uXn3%lEgubf zZs5+mA!@}9w6x@i3=Yk6Ct2Qx3(t^zDX~#3le3bbBpXIaak-j#qFUUZfa@$tY{K)m z>^qh)D@33L4l3m@6h5tJyqGL<#(XNp3JNluzYki$p&r2Ka8O{f1+#u3mWU^`dzj{y zU`%y#?=d3b?$pOfq5_du+u%p4sHZSG&qw@4OPCHKfD~uqO%uV|AFZz&#XoF2yBCEF zj#?>9SV*?~mc{qNTWz_w2euR+y3>RHH%7nK-Vkt!O&4PDwecV-04B-~Cr!WNG z!;9*tcOc!y|q&A^RS#XRqcGt~$n&zVfqdc~UK>V@eRogx^B?k^_|7h61ms zKhR(p;TUE=I`e@$+b!tyI(1yS`7LhM+uW22uh2?SbQ-S=@_f+|)P6I&NxcW&d?Ru~ zhiHQgx{ggn_KR5BdSv|`ATgq2CHYMEYvRW6Baw3Yl?!J+okS9MlKC)xI&7F5ZK^nB z+PZ!krEY3f0V$dI1NmXpsl2vbbF8gcn!Ig>*DI_y+_yUz&OfIjU=3??!$P)@QP#q* z5<#)p6m7?J((sH7zgTMDG+crzj~z%}2%DCy@%r<7-7(aBsr*{-Tt12d#8)-ZXdjMw;U0G}*jx^;H7TKZB{HZgZr z#Bk2YR!#~I7QsX)rU-t@Q%LtMj?J`?Ia;4lotm+&kndaJ zkGVo4P|US?}BS!f}M`(kEKu$P{lOU+E5b4E5 zu_G4Uge9S<ua)BeAydW^rA>MW)9k8yr*euJyl|gJstFZ7PYt(ohe4wtxqMbth z8+i{;{(R_jKPiwh4z$z&vS&iM2@zB>p$>3FMgZx;1%WA!Xh|M0t|OLRAy~Qwy0;0M zK#R0X6>pZC13xZ_~fwB`)x~|$js07@DILHJb zIKpAKipTj?&^o|sv-$!cadiWLIzVC*)LlW*w?cj;D+g>+`p%zd%dJLivwDiI`a-CB z!M_@AMm!?~MNU^WZxV>&g%BsxP(}clKp-V`2ug9J`~HMn&VcA9>={!%c&ou2cyVpD zYIc+0S3BwVc2JQ}eFa?^1c_t@8YRa-W&qhgIv|Vua+1}OLjXG7PFjN_0P5=1-quSq zw@jj8fDRFXE>tiGafYa#Rj*$BMi7W3t4BQ#WCHCX$oz3HE_9&uvIqhYEb_R999u%< zUL9)IYHQf^4!%oz?5&A2)#$pf=XTE;NVeeLru?F*?deCcC@XnVI7o2nuPADIDI8DUq++}3i##h-0 z1|ga1Kp2J|ULi!FP8$KbsrfO5R~EU*IKxj~6du_IA|_h^T9-_5ud{mMI$8*HFOThI z$6W$Hy6y3!q*E0L zm&@w{bEv2r;>Gm9phkzV3x!M5-IAgV!H_{ohGAkHVF?a#YZ`bE+hY?$>RJb~VS+!v z0kLKyzcPu5#@f$ThO~YR$@7u8;HsL}2n5{_^`k_>)L;=JU7P`dSOsPXq zaxqScB{VdJVyuY=m!gvcuj+7kQ2K{ zh#S`RkRXDb(SE|WeHDDDM${M}3y4{_`&Culm#y1F)Br*t8-Nr%17&gJ$7~W}Vn{u8 zKxD2>0HN8Oy1D+CZuX33<}4pfVDT}j=#}ib^jmsPX+4GQuRN{o? z&7Zs=Np{yYRmd=`f1WQy+QN@&j;@sdS=Q)ZF^<0|J((un#u4W;)u*nk6M#rEtr5FG zE3CfqCEfGHqvsbWl7RMA|Iz1xD}6>lB|c{Q+P1Zwa!&LNN&TmP^m?G92tXJGQ5+{F zK>}p-^tf3RArhmdOHchbLgrab+r{V1=$|0rK0>}ks zZf91FNi7oe46m56QqZJh-BUG^C~I&aV>jaY{7FTb=KEQs_DHgnHNr6*Db?!|hBMGA zF}!s1g{5@k>k24RmS{t^9>8ux5}KV?n>S=uLS#Yqb)FviRc3R>0^9WY3oV*W9gmT3DWF#98*wBeMe~=vJ=eQW*@Ys z$cswR+#^7D(8r7<#<$>|+ZNp5u}&?yH~Ow;!Ex?XY(D4QF<@brs~s~x$gI8=78{pNuN@ez2Yw+q=}?4Fanl4DyoKFXX>19C%*lREkPf`cX4iX>kErLh))Od6qjbCJ0iw}7!TSB zkZzuLnOGkGQi3HR(r9!#-;vZAYw4_O93w29M*OIF%h^4#9$WJ|z9m!#REQ_mdi|M~ z9%@v#H28w@O8~#<1(BZC3{~9BMtikH-4^;BRQ-DT+xQg0)_3^vq{r=Th8v)(FTW9+ z%>cN`*F4`HGvBp5IHw%fAr8%XGY-thxXz)_b4sUk$mV9tni=y z!GFoaf9uBo*uej0YyV$u81&@@+9gd(2tWWn6A&ZlDsTn(O~JxZzMOw4SkjZd`260d z@QtQ>?pit0ku=CIJ!nw4U<|GB1IYB-qCPBIQr&%%CA~d~izGhwLsUs!nlRZU8%`}4 zbyva@v8Dzjg)lFz^e9TcX9-pXMY36By4!Vx#DOU?GCgfsv0z$|ac>IuP^}S?1_#7%_IkRXvv2T^%H6y&dQ)`M!5D??3qPJgO;e38~K=ue;~)B!ZR#U*A1!Df$;5 zJ~!l36&U#K+o#pssq;s-{(}z(A6NzJUy01uM+m?SLP?#d|HX%UZapn9Ks}&Id}{p& zRv5_|@`n#MW{#q7h%AVq?sX`L<@v*h=a$;UtIntvJR=9w7GM?LIsE3szpliqVcPPO zVDcvU$?AXka9Wlml{=F8Y2Xmr($qhE_&xVmC7CkOj!apS?T$>DfB10qk&(RI{FiU2 z^KxEZ^3{QRgbsG+jeWghN3Hj`vd3Q*kpg^QW*ssT!LsEg;dX~`4nTEF7Lnk#9hH#~ zP#6R_D1*s35fD6J8CcUBIs$CUWtx{JNT|!Qfl%&R(m4%}xa>Nc@9D6DD1=?=oerJM zOXJKQk80{QMxeIvQ;|dM$00VEez04c4li@4_eis1REES)T`Kys&*by zv4sOq*O0E6bd)Z2YEWd!MXwn9kEA}L!w#*^E#>ikP^4SvLtSEM3TB8*fiG!DE+KYy zgsa2$8t9v4U#;}1Tgb?GdVW5RWgUflH!7YZUCy$k$ybZaq#_9dCwwrwR~ltrq$R%4 zPEbJ}C3^QGTMKdKz0yc?&k1G_ll%#s&leNBB=9DNb*WDugd?OArHcX*){ZCF2`Y!1 zC;;O5;7D+6<6JzE0;K3uM^Y&Opi@t-DZ=A8wgC>)ed%%_7CJYS31nQ*7ox%z2eOes=3bs<@TR%bjhE;FZ=cFB5@^W&703Q0x-JL;q5(MnYt<#}I^K)7?tM!5A5|B%QBHvCO;d`6i-9)}W|)T~ z=}RQs(3&|TNi3{SOu5H*)xzmn(VNAxFySmAPegyQ^>CB7AmgAH^qFiipcv1gMDyZG zXXRzpO^DXDWsNb~5(d|WRnEr6!Hh{_U_lfw^k*;t{UQqBaU=2Xh2-msKXUFfMCozz_6)XWzyz%ft<6*?z^$lZh+!~nvCo7)iV zL1yyeOS zmLf_O5zHJ(A>_2A-G{YS?W3c}00U@^j)>&C^kEQ3gpHV37V!Co&lnKbSQHP|WuVLt zqJv+e?Ok`*hK$|o673uM4mLpqzpHMqu>mLLkTUgux9m_X{@rG^UX0<^oy?D?;^o5+S)VG#SuJ=7Xp9fiQRc;T2(TRJz ze9^U52JSGl!b;3DR|&EIg0Acm zy3+7~tsIJrn>4{@|H@N${Xp8^$nmum#Rset7s;acUiKL&M{mlLE1U*kp_KPhC_Gli!4v)VYi=yI265z0C0$o}c7)W5r`4(Jy^30!gu|7nT?{R@;r@V|jN0_rXd-fkSRX0Iv!M=?)NHtosKSPR&uoP6V}hQl^EWrPLyR4pp@wE zGVjjG3TPDj+pbWc0d7-aQx_)~kWvTjKyR)z{)Q!l#g?tkNsk*$I$+SQ#cvj=Nx`(u zv9#HAdFkrj+fPG|AdG3JK?QZ zi5fXQ*OsHmhY`y5gw5u(GqbmouMs%_p{ z!@1HMV4jn)8p9p|i^CUu?J`d9D@Z)~?wW+V^)<@BTR0tjeo{kd_FK^(9OyLpaH!49 z-{>!bl)Q$xdp{~T?d4-7WGj(Zm~|-Bvn~Bt67MJmT~6YT zi_*z3SmdIYKe6`NQzCbQm&n-!vOSmcqH^3(P_VVZ*kJuG^1NAGhtt?2!aQQOf*~)aDRbJnI>j*Yfj$}M#Hh$rBtEeTXw@C` zyE3E7mL@9?HSlX|Xz5>>G8 zHNokDkysdQsriQ`dFkugv*skOq`IP2vWYO(_@F!E8^J{%qFLv2h`zni3V!hYRP*OY z3H1)f`R{7o1Q#7|?vsRlf7?p`?8iG>?x`Q|MR#p$6y*q$=2Z(7ZYO@Im!mMisCGnr zHQXV!`So>gYPC~A_wMy@+E~%VA$_B!rujLoomxDFORW`V6V5&L{KsO0QPrR)@yP3* ztKKDv5*NWJ(a|>o@5`%AILXv$!031sk&cdvSk~73h3p`1Sm`1R9q{xZf`H12;tZyR z4SB%RC}ya0{~i~2nxf9I0<;1pC2<_fi%)-XEv)#Bl%*-uQNok_%D0lII@u#u5Yel6 zp&33R@DQrWj-1n*Em}7=@}EI+?ig-GSsNOaVPh2mqHRd5jV;WTv|mKz+6nQI2W!9E z0fmITuBz1t8MP4`i!l?(*zRr=U` zZ8ba7Wi<;gp2E3j_^?b74A&h}uB{faXl3-)FUu(wny=6@jMOA!S^0`xnE06^M?-hY zZF`c3!z4255@O$886h4KVl>taEpxs_%tEMM>^|)5k72V|)fZI|*J8XGo>)o4sgUZY zCH(-RX0Kzp7C!-~l|js;4NP}(vju?AE`NT^(Z;xNzSh&xzom>$a&?(a0)DZ1nJ zX;dR`xLVfxF+aY70b1QP1(*CQDcTm>FG@o-B`)vL2*yZAw+EU83wB8en! zSg7XH$S)^6*m21N6S_?H#G2!G3Tf^hJG*I9P+vcb4qk61lDzR4?T~*T7PFuvoI8Uw z+yU89^66NEvS?i`i_nIxO7>CC*ezWFku-9?ZPIHotyjwt2U>#uWYomUr~-)mMVP+5 zlVB8<6cZ_%b9A#1m$J5vQkcdOK!mJ9*0!lSXo$p>(-Xa26r9$r-PD`WaPHPiLK!9- z3@rqZW%;nE;mdAaNUF^gg3z}P6HwN?tIZGsN7@ zZNP@Fk=(TgqqV2=Dd>9MFiU?OkrjBCkb(n~NCe?TiDUt(fDqVJw9?yl5;&qjV^u4yO6)5`cJL{)bfNdNe#(fO&| zjj?u4petN#C~L+k4lMEA3;0npL$(736mBVG|-XfCbeIsY5dhn zS$9f2tkm%;Mou(I*RH~iQktBn4qYK<5US5x+{v5W>?gN`-@V4j+ftq--v4E{s`BCL zGpL_4RA<=0L#E&nTfa(93kn}5EgnLdAQVht9895l4Mgsa;j|H`m-h2|xL4u?DS5d5 zg5n<=(w9PZJgp&ot;qTpk4T2e8J2@JR6-#3&78!5*muWu3SCDSZhK``!E%lBQKgnIaKrzN^az<`;ic{vuW;-WZL&JoQlwu z-bQvhMKo96)j{>P&KK>Jq=3)VPj^M1-V$-0e)_br_^C_UV>gAMz%Ne)-unI24-I!v z=M5Il!s`;&1P6t+M#hA>^oKC(Dn&&|VB%>^i4wfmpGT!gU?_G1&vC>~1H`7f0fjWm zJBv|*L#Sd;QD)zW>Vs%{-RMlQh_NlY8Y8!sFDeKM?e9Lq)d1Wz@?jE9Y)0~p_Ah2O z_K(MhRkP;A_Cz9s5+74y{BaU-oT8FMEKvo8)Tox&*Q%PCij?+szQ`WW{>7*Jk?|Fe zpxb3A@DiI4&9jX%jFdgfZ6JQH>=|8fSl4InXT3~O!_i<#Y)!*sB6n6=-=|1NZALkX zZZ0ZvHO-wxP7ByGT1f*^gK*5(gbxM}JfV_ojyjb-MiS|XZ0u+aP^3eqzv+@fLDlBj<(gCKx!3rGg?f#5&$YM=jmrz}4a45+kKlz0TGX*`MOO5qkB>9nr%%7OkS2)&3t37He+x#lQ5semd6t@b+Z&cj5Eb zG5-+U;tTk)xjp!k<#vtFB{N8n*BvilasA^_Q|-N>>L=gN&R#zW#gj1x$oOsVO)=iC zwUqq+X=0=AseoJH*KeO@-b{4|-umbBubbo$DS`7$o<4 zfiv;1M_W#`-^?^l00QGO?M(fqU;`;UoU|>#X*|vybk1i-k0^ z+DT4+Wc9fbc%ALO+~}hnA0>}wHe0p!kHx-P>R*^5*e$QK-_vb=G{#SH)p#@LZoFfD zhHYVnQJPak>isO8dbqv1$E3+hmbYPqeXjDt$i8aeFSWVckWUn4`A>gkaOK79y(-Ij zHc88!oz!eno|#sdQJ#?%|H?5q4?%PEPtiLgr@-ecX-5H-y-QAyYb!#jkNsXG8aey6 z_%9h1Sf7qo8U(L@JT~Y_3}33#dUc<#;Wl@NhROKVl0}PYavTlkW6K#7`!3@1{ zfp*a!wVfqx0MNk=VhR)FB!v8nu_gfc7A_gJX64xclDItc6+$Dxb=4}Sgj6AqY z(zHV|iqlR1IJke=S!Jpv92R9s_eK?EKWzBp;BH&Z^tT({&++P_DT@yMw z02D^2Di^Dt4PN0YY{VF!1PxKqoK%lHy_(aI9+{tgF&(Wq-!wy{RNc6sy?WZRmIyg* zUI`gXY}<{ftkK>nJwEGLwlhoal>K+8{hP+QG*14Zaf1FRRnRSNw#d2y+3<5JDHqte zg}4uzR$FvAen9Ne8N~y|;a+Oh1Xd)Nt6boodhl=JZ4q;S^!Byzh51(WRZc?r$Wu)< z)E}j)Et`g$?XOa`B6LSO;*xL6aC%Xo2adfgzN2&b?UjUR5LTYbhV>Do3nK&xQa1~Y zYtPv=Q3|4TRqwz|)B6<2UlKc@(ou&j%SPmeux?PK*=9&AQ6<5vc=FPzbR90^c`Zjd zB?!a$BT#;mGhqZNM|)}Ys+mtZfGW6K^0`1c*Ne9EuRx^%p^3VrN`vWS&1{wees-B{1wHg$+Qm%*EU6FkOmJNn$os}h7 ziuZBpDEgjLe2ABd-Yg_n{vRycHu@qy(7%m!I`l8gX6`jDeP(T|6MRXHYC4j1DauMq zMEm}WM}q*Dx&A+?QxbpGDboL=PJO=k|C%}##VljT1DVQn_%*=p>C$kyWMgoE+urJ~ zhuwaT-)_dM+<*|3eYYSY)20000ZCl0F;9D0j*P}5e?I`((9h9v3bY7G@|{z=35 zRm4UEp)e9xQ2T4}xZ<0^@oLkHiW1j{Yq>`i&$m9Q^Iqn9W_fW3$E&02Lb?)NU5*Lo zTAg>Kj|97J&G71E|N4}5j)Q-tPsV-3#9s6g7kRnqkV*6D^$X|*=w;H_SG^r%@L|}L zrt7|x*_g7vYD@E(7sX3+R1yHlt}63AX@PDA&k>VZ;vfprR#dE%gjKmGTiypg;%Uha zh7ll}iwPpEimdjMOXm{m7dwUI>`e2Kq0|6H>*|jQ3N3#GHfHY>DRCB0xmcjCf5oih zr1=#QbA!mb?P_}U>7LV$y92T}hP*JN&b$4QAakZea& ze;_4CF!hq`NO}j7?4C9D!8z*gg@k}(yh6XlN%4A2>_?GphBN|PD7D?}j_hHv6|XnV z(&@maB1@d&tr33K=V#Ygmdrg>fk@jYU}P>N>E}_)YMBVjU*)Wd;Zix1Ih*{ERYduh zh=u$nV*hip%E2jMf0GsbuVj_`KT`7lKcwWZZyodU-h-m|FPBz*yOQnB;$M`1A^a`3 z=ouZ4W2zGTKE-W1gKtTtV)u{AOY*(_51(fxW+s-(r8p&)%at5eXx6rSQygp670y>w zw`x}$*K~fmTw3MZqsJ-Jk8rlDAGjLBSASn1t15N!X3YJ@S<@&!U{d?LOY@>-%xS~A z`j~6toA}4YZF}!%s^t&2TLn5c>C{{mP8THvJKwfzoOUg&NDFokzJ>{PACdm3i97dt zGbv5<_`Bg>{e}H^D5`;^KvV$uvT zF(8`g?_`tY_a1zp5diUL5BJMI#2_(^=n0i4#b}o4F!e={Q7YT|xaKGXPanWu(d-$^ zJE}&cw+$fF(!(By#nMSQuu4hUq>^avYekBtQ&GPrPV&r0ISbuKR1v{T)Klp})AAmW zeL~ojTta9qayxs@`G@thT5p8W6a~z-CLK@{9r=Eu%Wi78K7U zS;6M3#n77y4BNbi>E&xj0@J&+EQ-Tuy(>_Vo8t2Ww2siLk8&7~;S6{ASuruaXv##^ z=bH%-R4D~pMUm7QGqS=!@6tF3m+aFOut>bS_^1(SO_eCLiE-j@hn|c)I0hOuVb7=% zJ3MtqDdqQvE0W0EyBa^z;BphWuIM$#n&jL0W*-J>f1j?!_CA*=y+`P@z8zmqiPU9n z<5FuE{3&l2*Dk`xY%|DiyQB|mukKt6p+wU8*n8)Jl8;iLe*KOUaV&zANT$=hNnrLP z?VXRr5()e1ehQHd%pLY4n5Wsp_}%eenBYcC5aUmkO*y7@%-+d_yiWtGS|p`p!z6OkRq`DgR*Bq%)~6k5KG2Y|1W z6CaSIFur#8kw?ZzRJ`df2xZ40<9v4_`7UyET*Xv%_9!H5C$c>1GC49ORU_$=RJ6Gj zRrZH@fViIx$%eGFfOIr#I|ic++Z7tKD`ll4&zARn%tBDsc_h|3SS0b(ogZs)pSj(q z0rJYz?nLi-+N(*I<6?CnDtHdgn!Wcb>FP61D}f!&_d-+mkRd%W{&r%jrFR2w++4l( zd2P<``wtQe;WuYTRxhT0_!sTIDu6@A)W|`LDS|Eqsf-#Yu54knosBH1Ru|)UXt-ch z*VUD6TnSV3Cuuq9fjQA#eIu)vEL0|TB#PR?Y9vN;a{EFG$+74J^6@zSnw>YA;y=IK z(-MT6pc9n88PD{vPv!nWy{r1(%mB9B$(xCUKIytnNWHR|i{LE+?*d$$UT7V^nL=F|b zm%4N*A_b;U%<}Q+-_)S8Tx`ZoRQH#lRaj>GLCO*(XeCz2OhMk+`Q30?^x;Y-_W%Ny zpvPT*)`S2|hHpHSYr=5ZU6C=ptYR~SBj<)*7II(jhVQ5<8Ocw6fjr^3$S90d0i}nt z5ldkG!poXjv$zg~-Z14^9yqBF-1x`U+br$fa7AjUJb`LpJG-MJPfuLQJ%(>+ol#M6 zeqiT;eEww0^NmlWlCjl`ueX>v2!j?-!7AenmBZ_MJ}G<(i9|wOT+YJ#;R#pWp2KWO zdA-cTDgWsSPbTHfFAKHO{m%ZJNcTd9dfjUfBpWZmT;GQdFk|8T;@^q45Sz;yre3WG_`M@`86&f{2$N6m zC^1bocV31mLxa}z13|4A56FDAjQnJknd6LZr3}y;8>)gFL5Z|8F-y*V;t%R=M@^M5 z(CQ1$c$LhwW&3&Z{O%AS8GY}H6cz2L*eAA>fV8}_aKNP_a_Chbl$|Kwd}8dTO+09s zwZ9E#qS_CuPq|Ut_7Hdwh^K7hY&jCL(rQS0>2yKcvJIvFwYNx@GXtJmr``_aRw$56 z@j>|5Fc6YGDyB$GH>;l*&}O7U@4+nA;KKdk)R@5y5B=~Vj6N9SkROET`g|vJ3`Rl1 zrtc<3@1r7dcO+I65qw2e;N|SFuy`B$rr%-D3(JRRJwq4?K%$90%-&a&PH88WAj@UA z^#iNM%{?Mn)7}gSQe#jzW6fg}&UxpbdC4JEFck@vGB=K?)cBbo90quYf9)N$vm<3e zWfw9l&;j|7xl#LGgX>|e-HpBMDm7~h3r07H%GiP0Vs;~YmeZ)TYmWw$(le4j?y_(N zlTc_~yS*z)F24ieeM4eEp`;fpaRn?(D)ORz6f4{*dTB~tKa8<;X&C2O)q63~ z<$r0}`t6hbQ!`MP@gx7=<3|xj7L*cxd8>lhWu4*6_~A6v|6MbDNkpRcThYwYQa0FN zhLLyHBcYsnH7;s;n;O7Ue|2nmVzxMz8JgHf)VSG}tpsi8_{3k1E4gJ4UjC1o5kf6O z0aTd=HynpTjUvRj^~A%7^8Z$-}Ch+ z%qyo(&-+!m?!3>|={%FK9(5mJcWfTj?_T9=jZ0!s-Gtk-sb+(|QrefieYb4=fxrBU zbnKtnBH@>1pAR=o6D#{Ui*&jOawHP;5jbD~=EhSN4DYKSm`Xj_e3a@7bg~?n$&M^6 zqU}|Qo{70;hA&!Lk$91c=#D%`Nl&rebClbGkn_mxC;K1C9tzPV#p;PK*z&67ysmJT zZ#p|V)^Gd8Uo^)=xqGVol6l z5-N3t+F9yEak|YF2 zyNts|{3rrPiPm|P0CJG*ALlm|NNWl>E;Cpa(ytB{(?c|1Mc5sg9jlO-L{=ZAr=W%7 zch`Imulo=orAlRu6e1ZM>Ajv|d)T3H-MM$e<%yS-$b|5=?`gqkLeGo$^rgJa>EV^Z zuk86ckEawO@P4kVltFK=g4h_zMAm1sHm%QuNpDMfCiSYQ6_IlUs(F91fG&yaPWWW2 zb%B-={8&p`tZ0t)m68Jnt5tFpCSS4W1j}Q4wHY5=*&22R5W@XY1WybpL#g=(t-_kM zj1z;Y_L8^!2xpPZwO%v#3>u*5 zT+PHv>H1`Phy>ek8zVZG$EALl6r;2H`R=0P)e#t0^A|XY>_q*LQ)MD=rdFRxrk+=Xio&vYhIEMhb=aFlhgd}-d{d}JX7ZA~M&*Zn_Kg=hST%hV}@R#tT( z+S&A~$OazB4(_H)MxDNLZ>gjTfLEggf$qxdrXDjPqH75j=P^#9nJgbZU$nS1bieF! z=JW?8Z_my{!aXvMRyhSz4wgwe;1ySn%UbwT8arj}iVdKI3Y77jcAj{7_n?cEhB_qLU8OL?u}FV2Rep3#I$j-Rv)g{|-LX8K9oxwZ zC{23Bh3QAL`Um#~51UD~9hXLryE42y20kO7f)XFm7|^F7SHeXTq^);W6TLyb$#NfX zX;yz!k(H?b=$`mm!aYPf_6D;`*5N!q&)8k{>(HGJL*2`lN%L*vgf8V-H&fsvA~)xi zH~=y`Opr@ZnnZV;3eAsX>)2rbsJkAV;j58j(Vy{#oMLJw_HHURb$4f25||mXr=PIKaQDziTv6hBlEs_#X4vo& zWOP-GXU45N;;d-uy!Z951?VSOVRGVqtq%DGsTwM^)PjSo4ZTPC#^v=E{96VC1sRtK z{do^rAVvt0?j)v!>n6}e4j|`yC&GENHqgwqs}ymaQ{m5`x=VORP(@wC*d}v%-q!*P zi)V*oQ!JcMp~hx+Sd7wIT3*CY#Wr;$Xq{JpdH2Te3u+iKFQ6NRpG(PLKWe^>dK+)K zvI@Sau~!;F1(s=Bc=t8#6{B=dl$R*Lc27`L;UtDl@r9Y=+WgJWXorOR1ZiK1O=TiA z{=FnAPvRE}#_x^)D}J>(!IYZy1pi~z6-p9pe1iW`2w2D)u8d% zAklF5!fTO2kY{qt9y~+ol7Tm1YWr+W{`-EX;;buy`L%fAO#ED<7nWR|UB$q%we+e7 zo#qE>J~?-lE*hH%gW`50wV-}+65-NUR}`=z(qu_Y>`&!8Qv(pM4a}bslJO6MVXmqA z+PS}#sM7Y^@hbA-H1#wb<-PJTnJj11Vn*8gu&oGcFntGZz3qXycI%W+0jd-7V%<@~ zstx34?J6mom*)w%FJjq=T6^zR0sRnu*H|Q)aFFSL>$0za|GS;9$1lD}MVTo^ilvdf|LZi|9+e=wN%ePgC2h@bOEiJFEe{2bh zGNlv#oxLo4JL^})whtl3&Jh;8-AMa9mRWuy zCh5V%TSd}ATDKbdO|-7NvlMD#b@(Qd1YBm;QUsMqC>Y&K?-HDovA4r<5hix?8T<%B zNPaZbG9oL>f7Md$>WM16Oxu)~CDO^Y!jGj3K?6pYH-chPZ$))u^jBSzk}^~_DQrwG zi}7iT$7ZH1#PatV@#_mf_fsAUcAyg;^^ui)DA2~2q5_!)54pUaNrZ7`a`VBR9K~yJciTMxBm@#3B!bWW$mz^)_7LSA^R0xlqzbZ=q zTN^knBLQIWTm4_bU&D#_0V9TMI~DThNnxp`;58Am$G?^(^(uEY1{t zPEMQ`uOmQG*Z7ebA{hMkSP~iz%}buEh+NqO!yC~A&0(7<^6)t@Q5_Z(JWEWoy_EZ# z6v<;?2n5CiiLu$SgSYr92a5q+-fAx)rlT!QuM|`or`LH=tVoXW+K$@4*$bL^A^Tm9 z=^Eo_2D?<<=XT$o{gD0cIz%9+;H2Yuo#yE~oOnFWUSEKHZ|71A-r_8dCz(yhh}J{? z53x%#R@Kun$Z@2!d*2WzEH4e@z3_NWmhX8oQ+WeKvXQ z+uKqUaRmHz^wU=l2{6fWS(orvjVZ*UgxBKvM+^kCnFQj;~kP=*|}kKo>Z9z&s7$q?uffbW$o0i zTRos8a~Rj%wj{x+jiFkW@=W=XvqF(GGr6~Pc{=m0;{kn=aK62syWNkG)B}7r@DUj0 zqnf$(&GdYtACDb}ycB&>1>y~_qFC~}K-_)#pLPjVm&v0%8w=sY#C;?@ny@mp{(A(_eo}_6za?sr%>*=NN!exH}WP0wxinL%%z#n>m8Z0 zkkMZQ4OXp|3t>!HziZ~o1z^R|>?u~DDM|oR)5herj&rw73YkPSeVB1$nJ`%Mm2fr+ z_*heUjsmdA=9CX&6D@Q{0xF)+^AM#I@!}7P7nKCl?Dhbb^25j<{b^oU6Fie#nw_zO z=Lm*F48ehw0iaKu1Wjx0jN+GaB_=L3Aulaj6>B&ZC2oKv%(c@JCI&F=de_CKU*2tn zGvjh$J7P(CGrWJ?O0(E@usIc+euIyiB96CiopK~Vk$Dk^&C~)`ZL(cF+5D+wJhkDpw-si@2*Fl6{%jUIl_hUD zgRB6{yf8qY9xVmgBr|b@a!W)Y`Lo6JB=2#O(#kcUL=!`bgr=AHi#U5|+T1v%RqDOabGQj{ZFP=0i^Xj;l^? z${+fIf{ZE|RT-M3qs^K}Z~jxwWH?b#U%;c~^M4+#+^(Q~GE?8b5Jg61u&j9sQ3NM= zbqL}zx5zrpSn6#1uMm&e&mdkJ52}UnD+)}KH`Ih4TXCx3#)4D?K3VBuZ*o3m<6*q!>5I1JXq+h)KKGDr~@+%b>SyaM60WW1G_kef2$lf?^sFNfD7 zkP1OM>i+VJ9}qy=N9awpdvMV~O-Nbp1T7VmNW-pD0mTtlNO`Cu6lazQiu-aU7Gc;g zkakf(ZW=9jp@$*WQeqJHSV-2N3n_aqcG@}^djuzH_rKvq>ENJumuZWX7%WvTAXtoL zY=lT@qOWC(*+yVH=@)q~hPc^TZs)WN2BtljFiltT`o0uPtH#0{sic;+Za43wRG4(N zbLE4eY8WSTJbTYm#vH&?TrZshSD-QF4Rcfv zq|@{_>+;CE`|QyDrlbG3%xWnel;lbA#;A(;Fg0{OF37+vjFVThJULYFR)M(TUeT!5 z3X5HD<>BBG;XB!Df&Nduv+8e+i>8q+JDZL=MYB9P#R4o3XZ*abI)vOxb6y{`$B1V$ z0ILiMOhuGgU7F@=@$^)?SK>VG>CqN;X^OQ=o}AYPrM8`Ck1@8`fuPBIqKE|8Uo}-sh!*b(4*PavF&es7!WAILw7Bw^giIO}_lqT*GoGA(U^V90 zq-8ZhO?hT1QGfP>O|p`yG&Ql7gGFQji|x_1r~MY_D@ zW6$!_>bv!1@HYjodjQRmS#HSN5c|A(p+Vl;F;@mn3gUUVS#=W){oWL+*p~5`6MSW+ zQSwo``2zBpoJ_^aKRyfv_;noT_rY$zF;*qDtzhK`AjnUfNwp)U0#WOSc~MoGj8eGj zm&+zhmlmin0+suUdaq&1$Y2ps2 z6fRf7w+PbC4yRtwnP6!5SHKdj#w+Z8xq=|4OdVmlio?ZNm^s^}SnM7BMQth?N}FLe z)=T$$rJ%JFp>P^!OEM|$nK}{{XAviUAr}!4Z!MmRcJ8LUzTYE8%Fv0g5`F{`1Fn$l zh_Z7|xRSk4bZc><{f+oheQl$m7C4)R8}A~^@AtcOHijXm3+9k|s6r~5>ZaB!j?%-4 zI|(i-@sJ+Y5X<)89E;+ab8rV;3*_gu1G!RK+}h8s(diG-FgRJlkmaMDfrDwQoX}|= ziuop7p!VF6e_iJ#qsMpfjB$R3-YKyBO799|V@wthPTGaCN;gy0ZRFs10A`6Wb%R zQS%AP2QAdQ!dG~9@qnzWPVWV4&z8m0f=_`g{X6)(2WRybImtgW64{51Lo47SZP0co z%nWWyDkc@%=eGB7e4K=IVvLN!r-LC{06+oS9Z;$O$Wxj3G`%Tu=b2qmp8`Ahg;Plb z6jzLYc+4;!8}r1TO@?r+T}s0Lk`OFpcA%gP>Y~(+6CzM!?wb%*PykZF-~JBBYYC*G zsO#Zsl_%$uh4Nxb$N@nV)HMo60<`1%b^yw?G9?-~Qbmf#lH_}rfm%RIAO}ss0~1y9 zb92)w8I4Fiite$=&dCry!#G2uS9qo&)!2)yfz+3bNm)#cuNq|Ey=fmpm2T8x-dGzsn2|>wzVVW;vy%k7eNNJvPe`ibI;y@O zPo0c!4vs(L6oh?p+)noRDw`$cS{>QB28UPvyf}(ueU#n?kH1JF`i@|95vh1-6Jj*S z$+v_^r5pEb+IOk=DhgLM%^6zx8(W%ht-=mc&a@ly0LGS1$PVuiG)UjJFl-w3y{RdH z5wI~sWuYv{fM$N0B9HQSdS**xP>~pK=+jcCSqzi?n<&d7F?$|r2Qjb{NU6yfMsVh- zb2nJA2Xdw%6Pz{S1{IhO7`WVx+?r?uB*z60)p4x73>zkkh5(W6Sd4Y?wYVlSBk*E(yVK)jo^BWZ!e3P3>Vw>D^ALzPm_sU(=q9TP#sC%vk z&hHeP8ul{;AZlt@FRIlzE_Cc)dcOI5_sk1m{+lxI3)@e-A?TTWwPhpGyrVk--^(>2 z3K8upVy=&n+c!zybGOqd?>*qEV1etU%2T~?4Zc*d)N9<*^O4&U$se-_Bb9#Uw z#675R+mc^kdXTKQj@bC?CKrLM&$i>WM;NePSMfnwnD>&2G0~EoO=Wyo!>vz0%!5+u z(i+oLEfT1({7|UR`I;R{BwLvKkXMo~4Re75d3yHw#^eBr$RM5NM1^un_t_TT0G+B_ zAk^OST(a6^AmsjRe^i(BI~zuZvp>8Sd$+rf6Co1h za5P7w;CUqC66Xb(Bc#1_4H%VjA-|vw(DFaynsHTA#l-By!jVhJ=*8{}z1Mc#Gk(r( zXf?M^4exrl{hZ&|lH_4^gQFGOxe}4#74+yRG_MQ~aHgf5+=cd0HU@RtD?ByIUWN!k zb zjL5&g9`sq;Kv*EM|8fof{q+>Be}6r6-pldy*Td&e&_EVSQK*Zpr)Z#)Uym_4SXD_9 zp^i^nZdVfV67}H6uzb`T&ba7Rbia@O)Nq~4P!`WiRNY@B=!z6rYZozPDZ8H)2Pf$b zYXjcQ3iCfxhD4a>^M1{nQ05pGgVxyWOg6#amkBsBfg|DLOB#ue+?WkTlv0$%_!8C5ZtB9j7dUs;M#_C|5 ziX*DB9&SU4pH>iPH;x_bn7H%&Vrv(yT`f;}`ojFCAuWeTd{~vm)X9|n8oi(#DgD)- zjV5~mS^v<2IJhXn6lby?4ecp0p7+rOL||xy$hej)D;4c4M-ozAOEay)e~Bd=+#s=J zjux{NWGu}Mgmid%{0p+E;9d^f7gb6G@j=i;nRDJJ*b=#obJ3Vh#YA)qd}U1bziw?L z-F|iwWOgIZnvu3gjaCDjrx8Y*&K(;h@uztL1S3qmi?XxwU9)8s+K9PxYlQDsW(|9g zUAEs>iVIKfG4a{wD*f^0%@c>J+duiwSP}TGCxKyL0l0lCNbk@x|6c%pv;rUxGyNC9 z?+(7SDW~K5=Ha>kk+aSC1i;Uuk)m*a<`lpmjIn6>emYk4KY>HPOWOzDlpE{u$GQuF z0RD6A+GAu*6(*rpZCN0I9|aS*{cg~r+~xmY0KZE{)#>;K$$MvPR^?v+|6Fo|XZO84 zN3ASBAtT@TpgPjae%HJwySR?~Zj4g7?}-;j-lEaS6gxF%x?Tox5SgH6f$B)GsS7F+IE~=sCyAn-$kia)t-tsVz`GoR#jVKoF*= zknL2a1IQX%2S3!&i*NDP?7%6nb3yEhU0DNG8I?W(5_vQYonisBg146KT@+_$bqTyc z$-BztFd!E8%*aaWPTAz7z4D9AiY+0zknfZ=?If}V&Y8KRGpdrC+gr|zPz=tSju`BhV0Hu@p_&+^$Fo7@sL#Vn z2Y4X7$8QZXo5UlC{ zB|c3!XOxu_Mx{pzFxuC+U_^$TY=y?LF-SSWd#7mZvv0d?LI4U)3gB0B0j`~fd_3~# z%gB=*@}=ybr(iNj?4}iQM8|W+L@enUtgThx6h{qL@QS zIGH3kbke2A0)I4?;1s$q9lr-K&rcJm9muUZa~TW5 zC`(Nb=J0i#bOm9`_m`=&cxib%!AY)sE5(Zb9>LpVoaPwZ+3N2-AyKuFw%8Sx%2ef$ z3fc%~&y{oe%zeSH;$pls``HIl`#$f~K7RO&3-v{+M}#Im*3)K%vsp?h<{y*9DFrDL z@(cVIz%3vr6FsLd4Ia8nbF%&;r_E)DP6AAa*&`h{F}id1HHOlF;CnIn)m?6e_-a`IOoBf^iVZ3(pH9qfYKpNfP`$Ffo zwRzc78eIvKrp*wON>&uZV+^lSdv3p_fYAs=!k9$Q4&sG%9zZKOkf)SD*1nN$cXvmM zFdIz~9H4}J-_!KvR#Tp1@n<^MxH@T&lq5#;SgDWumEu%`m&XT?%JT~dF1Flr)>FFa2=W6&IK?y>0rMQZavU6~X0wa+q4#Uj{`N$E zM-9@B4C8HAmEExyQ51=%#+V8Prs|~m(cd7&Apj&HTv#D7RtHUEX~lt0`f{P0wsJae zg%)OP7^?+s+0c+|rW#e1-Q-2~=u2hWhY05BoQ-gDnnVK(sc*V%qE0D2r~pPx(1vYV zpOCot^na*!^m$?SMSP-R(U`+D20-^iO5By6%+m3q*8x&XAc)C^dH4y_dp;_}nUle= z7@7Mjr^{oiX&NGs#j-y8Xi^ki;{|yi6L5Kq#uwCxx8;&JLVMLzww`pXZr&`31tXAO z$Lcx5Yiq6yBv1DU#O^KF$HKF9C=+c6EpD{W%`>M&4c#d^N`qDQvuwR|DVU+So~m*G zT{*o6g(6g9<$mP>^S7U7w0e`4!)x*?=N+MSrLF2dnElz7Xf?5etaKs+BsAismR94L z&H<;D_+trb;+Vwyc8wFkli{{HSII6{?^5m4FkY>5cM2RnJN}DmWA2-mZD3^R6}vyL z0;olpdo0|6wP=qApNyWU4-~G<(;85DD)PtBqBwj{@om9R11SJ4%y@rP!rb^Zr)+NK zUeOJzRkoYZ9wm-{W>T2%p3J1^6+9$6SmT7K5OpU7VMHUV*zXWxzlZ_g>QBa}gvMcd zp5_f_|*mD z*WKFT_ER+=)5PC!l(tCQ5UB<=X4M4a_xNuB2V3M=^~B&5M(;A_#SMR(3*Ur;tSPzD z1c#F;I9P6|X=v=;0bkvh?avDLt|{Qk$gOO# z4p*yfBXNA^`?-hJDjUmtue}d%95#M#WjkTY()~%v_}Wv{j5+5dv*E(dEAJ7Pm9P=6 z*pcXrcX)obsqzKmProH(y`VQ3tyNh#N*75w0`nJciVFW{eh(CTjgZ%X5O`$%d)&AD4db57k@8avP5Rx?CP3^wz!u@82MYV`t?;&ORhLH}sbG;wN{h7fY z6MjOMyvJn!qjo9VQe(=`zGWpyHPU&{_hoWKU-U_?k1&xq7}r+H^(V!+Ne9F$CpfQJ7| zwPs^&bcl})*XBkG7Z-r>xAfFiW=g~bQIiA7YW(4F0RIa|bP108u19QQKzFBY+LU7C zLV!_7EWwV6A?tP4Otg#xzll;pONT>x=9SAT#zGH(_WoSIT|Q7UVfk-Hzc(<5EPTh7 zz7ex05{E0E8-qJse@%NF*H__d>_=U6s+68tfl8@jQ)1Pnl0p;-iX=V$y!{rSy?zub z8|h-hzRIXw+mKh;1Yk}ylI2Gl9;X<*BS+<8FTE^ji;VFaDc1nS0z(lY3cT2j)$5R1oFYb0^qUT1{D*gg1wS z;d6AF$xr?MvgG+2<+LYeJS7WYc_wQgpt-Vmw=&uHjbI zgO?t3%d$)`Uv(Ic>Xm3zctsu5><7pTbhT*Hg{?|c8CjO} zL^VN}o_%IdfF%f=Y1xh&6Yo1E)Ukqux&-nTdV9OtJjZmBE)Ta_Nnm>1?o7#!=t&mc z+S>I-;<3kv%FM?6=gfbF%WzO7(&^Za%fHfS#=ynPx-!LzLKIY z02@d+h1S6cPw-7G^65%^fU5#W<>7v|Y&aIl>aQTg)BdosUq19N15&L8osN6Gma9+q zddv+^ajH=&7xm+j*yQ#AO6<730*tmFi;LoFLKnnVP)TDjc+8k~@GXOG8=?AN%+}_b zh9*m4aJBr?9cQDmr#sFpB^1}wtkT2R(pY(Mg^FSTL2S5ZQpuarYE*fv$dGYdH z6%1*6v>XL=_V!%=k-0_z(zd#PQDzg&3?7a zrr)JNBZ4~;lcqMI#%m_vK?ncgZZnXb_io29|?x?mzC;FliW3pymxW-c}BCN zWn|zI)9y#a`c&%!a$yb=jT{!UPyrq-SrhBZ%Onc6MJ*-*#Ureg)Ywb2h7Ltp3^^m; ze_+=8?(g;Th`citx}svLQ^7stX4Y}{4qy9EF{Z9%q8r!sdqe)XnPC==JHJhBzig%Y z$sRWkOO(IegE3ex@A$s91+6&Nt5u9CUkFw6c*f8SX$fwASvWBd69|&4fhezX=xFSLqd6-$0vo6 zmiBPrwg%QT+0C%cn2ImpQ=jqb=v8tS=5!6#eh69N< zN-mh((%6etWtd3o2XkvT5uoOsOJfLtQ|jDY#YU0+l0V$*-lH1V?wzMHudFbDTPk(# zt$I=q(8^*j4vJU5QXM*HBoGXQ*iVd9%gmd*EAVD?4JrU4b=QV=koyO+n!Ln*36(R2 z4LAdlXcz2t6^1Y3xV8zJ3#kp!6bJ-w=d~%d6;0eUN$$N36@d5HefSLt{UQ{A_45@& z;~0kCOx^u3e5qla=R_gYfK?PgDo&LvQ^j3F(%_sS z_#Cem;|ihpXB-khoyY{<9DFU9+lDvousK&4N15fyLR3^ae;sG3mWxg4Z-Q^h7^OPvOZ~!xGSg>J}Qra<=#ao*{R2=s4CUN0$$wO@sG*~ zTK#qg{b)qV_D7Y^KDxQ@y^%ApB%Rk$uS|WdTP}?>~)2J}g zzTLA&E8H|OkHlZ)s!)V*fe!ZH_QL7oIS8BuIRDi{+Kwl;DEZrXgK`jk4Lw)qx`tft zG6mIoUFxVI9$@+AinSl&Qs$#kZDHoCu~7ixu85DuVg^)Gn7KMu3Q(%$Axv(aLF8xj zu17G+`UQQA0kO$=OKv6JYpg=4J7J(O%25?C9iclqXxw5VDsQIK*}{l$9<4;=i+dlm z=1sgz8qv4UmByL3dXE)NB3>hj=(s;`FTbO{NboU$=`VS@?pi5FlhY@o+mXeJWYrdw zWW=$i-W@XJ!#>3hPEC?IY6f({VdJY)g>(*7ND(cK373fyfYOxK3i~3ozym;_3mNU@ zP88DUKYfNpuKDTBYC1y2rJUs3RpBG?Bq+DubZ*1sl04r!hK)Ruf1XU_ z33|C7(gS|%e;CMq?bx zQJ@M&wrD>c%dJcX#V`1=;nyN0g*JmiON+~sC<50#$MQ2-676_ovEH54@T30Z7XpQUq>^m48RIp+lkd53X(h~?qb zt_2^|nC)=QajLTC-5)ZSBbNby5=nL%BFm1^^NlM(rQ$pcP=+ubXVbC9SHz{K-}`^A z0RH(JB&V?Knq3iyw!Bg}lHn{IKEODK&2yXr9gly%tO&~tT6ZB(=kkU;kGdDatsXW%c}jYQzD?e{00p>GzMIizHoh%~a@Q;dJd)2`0_pdsU$?j>z(uP7dxgW(^K6)2$_Gs^aI{+^JyP#`QgVUr+WwnGO++2Yzcl5 zqfVE5ljlFF&S^J^4$y=!p00ELTh9fL_J7woD^q%1-#*YF0{ zIg?CuW(_q6&9@QOmgnz{3%`FU`31_cJ$7-ai-(l!#@wjLN*_C;Lbm3p=-Ln!w{?gU z2m=d9zsj{Mc;vC+FR#AGUCH{{!N1gO!dB?sfg`lm@nvCU#;2XR=aUCC55G%(YV3MU zB2ksOQ?*|8{E88rO=fEK?Vi}{hYw`#z8^npcznFTAnV)w?sdwys)w#eUnPdSF8+M@ zNAt(mj<>JR&|iI2`SZ6?{3ECYqoqHZHq6qfBD&c!VEb~(TYoz50?S}gov>WRvo5K| zK5u;CxnXt=s#eyt*>F@Cg>=cXG2aV&RHPUUvvoApLYOr{W|w!u`HJ!zLM$yrtw2G6 z<6~@`x^SXR0;MR$8h&0*np+=xm|Yqf=y6KZy#elYCNxQ} z>DtF*ZYA95{J55-vR+!8e4h;5>1+f}CZ4QwE-~<$<(tm~*Eu^BM8_n?You1`e=Op( zNaric4Dm~&1B^L0OD~Am=}ML~@$1s^KRsUDtT<1*(uu4X|H~W^Fiu8}tyDiZ&C{jm z<}r(<!=wWX{8jMv@5Ty>Yl6Hsctg{hz#$)@+;P_9UugNTpubzOc7Zd}>0lt6Hloh247xus=o29;{7T*Xk}GU_{Ql|%-Tm^Qu{+`b9}0Yg$??`pcy8Eox`UkpA+Q_CHD5ho*(bic^!}KP_o~nL z$NooK=ONruc=ChS0gU%iq+DSgWZohHtiMoym|7@l<@deY6c&H!x5zVHsW?YiF;Zd47J2(*Sg$*Jzsld;FX_9| z8}s-f6$Vyre-Y2>9?gL-Xrkd$6=#Z%d+2HN9K|vqq7@(S2gC4el?+_#txd>w;^I~C z?bV4NkBl#v;=AggW>BS@SeZE`Kv1JovU5zf*DMrt`=O+FFdlmIC$~uHG?t-NB=jm( zkw{_5kcBXP*s$l+rReF)-06EaCN%A^)v4EnToN+oVO%r1%p;O{(IIOE3v=Tp!_Qd~ zQVKH&l4q=kZYL#VKhC^B*rYhFytjMl$xQbL?k_B_L%!GNP)YO3GvZDu~1d` z(fRt;HP4HT25*(v#i*)muqNkh`$fbSb%lS|fcS`~R!Tn&J;1qp-K}Nyz+)S7({@9W- zuHq)ge$7X$$rXQYmtSWLqYU^oIVXx?R_As!xyGtmh3JOBkRdWIwL!B&80NDzW#%7b zv=wF<#k;jBD5XC21p$UNwx39UZEW^|vvTknaJHH0oMNC{Q*j`v1`vjt=|qgzk?5qW zW4EBaG`grK&&y26L}tg2)i0Geh^uNCzYC|P!8GM&?brt{y_#4zY;GeZQpzmNvRufElB(GD@yN= zX1~4oVxbBqKFmL6DPICKHAIun*xz*DMgCMy5zoF_ye_U-FSmUMPu4E6naza0I8)`Z z7jKF9@T$`*8V*25=lpU0!U*loQ2d-cBmbE9p8Z9QuaU8@=@z?P)IN!8Mk<_DxY$d< z=kNbbAV{l$q@Puy*3>gm`qXz_qMuaIZS{z@ zyVq1W(&Y8#YJglHXe`ykq`$6PzmaQzQbe_TlDZ-=H_t$38ZCY@f&164RulM@mWSf%M zH^fjPK!Hegm?)biCA}-xVmJ;dE(k0-sef914K!1Z^^U>C&-5Pp!*f@}uTBnsNbu0vVY_nq%;akm;e=dz zb{^%ct*knwhiMr0_3azdqxrk?>3Z`$hL0pg>Z|s7CFVbB9?Oh(34blT`fMAVG?;Bx z{aWgHIn?}Ri-g<5FWkMqn{I#bo$q=2HBRpN9=qGqC-1m$@0lJ3hDzoxoelHp75MWh z_NC?OMdr>2&BmK@x9+cTzy2|D-SsmI)$)?TF3$ZV@(WC~coOXrjH( zPI94Y*8Rqb;Wo(*m*@)EG0XXG^?a8;q1{1x*qLk;)Vj-&!7^7y!!Ukz=1wpoXm^1E z`|4pZgZ<*et^&z8ZnZ^xe_#;RC|r-Ey(>(96P0&fu-4O970LK4MB8Zx6;B>Y#zaRc z=!;s;2%!8ijtV+crgRQXp%WJx!S45+KpKbbMm^^9OI7s1)LIY6Yf5}vP0%P(h?Vh` zQne0(>KNy8l9S@(IW8X=t8%D`K=sYYpIXCHtqzzqIMjXQbp=khb@|MyA-VA8CM&?k zbNF?}FN_R|5jCjvP{t`LViA7RxWi76kAoSl#t6fA7J>DkkHzV%o410_(&X3%>oUlU z<|Z+P3NNAnO_W78`HT01&}Jw%KV*U(#W;B5Dgr040`E(!rZliBmI~ZQ0{Qm zD~!rU8LO=T;Z!-%L08=jkig9lH3$Fg8K>Ag(c3K^{v49fe1%zk-!(w$2FMo_exVmo z2IE7Qj#!h$5g8Ca-d;l=i4WaGZ?Mmg`t9O*El(T>9oO+pi9=d(s;2OWZE+Nmk>dIB zwAO{~xD@gW_34$P644lZHtwHnrY@Nbph77I@3&uSm)%-R31T!9$?L$~mwlr}3uV-4 zS)wYXe%m`cxm0(G`Yh9H76>2c{+a@=-=&bee zxtjp#^i|;K4iM2EEV3;h3RlEISS=NQli6QsH&-w_(z~HmG!^~CW|w_)QIR%z6mHS3 z=y9gwJs?(sPi$Xd-wmTcEG^M^nR79BZz#(~DP*lw)&vUpJ^@XJLO+`+^Of~E~F5609^j3i2RQ?^dv_TS!x3p}dTG$SJJ}<}e&V>3xL-^I+84MD1~b#*xq%cB$?>@Xy}WCu7eaA;@mM~ov+@yx zKC@1Nb{s$V=_u4g{nq@*2Zm>LLLf51Wr-Vq~4W}-&wLohlqAr*-Uy@ zr=xk|79D777E#D}_>o2thC>j#VyV%F-;8oVza@vtLR3qJOb^M4Bf)uleL{l8w@UED zZ&~<0J0`;~VxMuv+Y z)=AJ?98bI*uKv57vHRh8Wz_q865QWTLvOa_5})z!rPn>pN!Ly-R%h+Cbumyy-E>*x zAWx3I5GQD?Qb6UM8mqvPAWVwWN9aF}OKxtkbGRQ3Pq_xoVLtH({9_L=78@yv0h@+m ziL#p&)2B_tydeD7?s#;IRH2US6UCF3gNS@om=4Dmn#b9NJ#>G!hKYuhPRi2K1+9WU z%N4dn7Z(HbP}a4N#quq3`?nPLnHwW>0wrLt^Mc14G+^QUgBy95F0+;vBuGTW7p90M z^5tj9&z2TH(LJIqhS}cMrq3yw-Nco(9v|^TYCB~d@Xdqj4yDy^`D3eL-_iV4PwBeL zN}JF>9czb15Zm?j<9=HWQ48@Eb>kzOk)&`3na##w?*?c21@)mITwln*R-J~W%*U41 z!NKlpeaYv}SEqM+RLMW17TFvkmERH8MgG|k#7uGbkz00N-8g}Q8F zvlhK3OuzSqMOH|?h|=5sj*p|vrOZ#drJ~gT^2U&FLp$G}njX@uY==!roln*C)wdp| z57bY^+}WfW5~$gum&~>RU{v_+;x7Gyi>(!us&2Hg)-93UPgom{nyEg^>>=NEEyV7U z;Ug=LxX--$^LgtrTlmGCE%lP0V|9C#fA+g>?ta*+JCDZ#FJcMR8gQeS|tG;HFN6h z&a+~e*~rI%#v*%z)>_9&|1dz6MYgd*rW$&(1B_UCRqho$l2x~WCfJEq{LEx=n~3s7*=E{&+FG{yFTd(o-@$3wZlef%CKW~?)|hQ>ZJmO`kpRAVrP5TYz8BsI+OB$!mP75iglIr-~qdMn2zvuV7p4aR7^Z9#T^P10nU)T40-*bJh z>-{lm&HAU4-(=CQOdFFLF|xRlK2ZkovaaQ=!KGav{$ZP1)8Gr%u7294qWzRqJh@-} z{_bhCqn8U-;t=SX%3pI$9V~HI(xL8hl5AZ1QLpN3vU8y%8D0Eg-S^dLU5ORq0BF=$ zZoh6Q=%s1=!yLSb&J^25Ayi=5c{%XZA{ySG=OhK!%6D`AT+ZI>1`jOoeh!v9)ST?` z1qZ_Hg9<@9zt$PwlF#h3Q5tf=#Ue3Yvu9$5>@S^3nJ^nTEjs#n_B8DVJfzI^eR^eS z#^zU-I9XepLkMiDS;$3jr0a0$nT;uzi^xIEm+@s$FK7RYA7DQu7POhee$Rv-PP+eY zGiUv8etIOW|^pyuz5LFfQT z4oUoZ#6H2U?P3%bG3BZT`pwmAJar(4S=j*POk19O8Ms-GC5VMJqgs|Wk@Ocf@WScK02zuX3KRHwW%?i-2-I#we z;g)6q5xQobtB;w;d>ipe!*ZcA4s5_;ZXM6E>?>4EmiT}bWWuN>h4?F@=0RJhyo!=uc2S}DE+8cVg%Lcen<=$vHyq0fP(n6botcx{2iZ|XF4ZE zb1-Z1`5qqO@z8CBKkOO#l$aFYiKRxtQa&@XvycxKH(Q1GeP+NVbV0p!;O)}AUNt>E6oRwvVhK+GnOB`*U) zHOVQk(i{*r;ys9rB{DZ*{JHQNqIMRWfPtUdpdH9&yNZQB?+sm&u-eO_4G_$nOB)MB zJ{{A46dq^~yj+oJugvA(6Z=n@2EvRkSy%5D{?5LY5{%TJ1~rJUX`lk*5EO}BilD3$ zS8=RFs9OW#s)Tsng3^ry;q?TLW;q98{6NZq6W58X+l%gpLAHhP6sb4ZG%tRw+NL7$ z!D~I7&Pm6l0XEDmpeuK?x$)^yAWWJt?*oSkDo zGmU{7q)})#OtxXSMpXHsp{!asVNf7Su z_Z3D)Z%u`HsUtO}KvprJASELs;;v^-=%dksK>^Xiqw{954!q`EU3jyDPT;7Dx;0g7 z8oqEzaTh7?j5+hVpZO8J;9E4a#n~eIaZ-U$0b{D3{$?d&3KcZ!Kz&o9C2Zyz;BynH z)pZ<;`F>cs#>DRaKi=uJF!h38{+`8AYnS!kv)BbDU}7U38Slo_)H$#|LhMZGCQJbA z1iF#km+Jx4_(N|F{K_^4A}02GN=`O!H_(=XdW%hRnOAA zl{oBRG(M8?f#vL88oLib1I6MNPyG^5~T_`3wI4UiW z_mEOIC!rWn(f=p`ZpShQ>5izYfS-z2WAyHBCw734C)1h326-4x`7opJpIhqanroy(+Z`$#&)CM-%K4IXI!=A^U>WZ;b!&ZsMEyc`YyIvPD!R!pj z#sv80$|(}_e`Y6W77XZr{42V_|2euaF1T(MMU>&Tc1*Tr@J1<_Ef@(bi9`ea7`9B| zL4?&+cl&4snIgqdsq%!l87$Q@hV}K<^S|x6b3GAb!2Jc^rk!Fo{QZu zNxxd!$QBoOev*_H-~`MiN%fiyfFsm4kT+(rVlQ{^Wfhn?RW8oDD}X;L?Unr3M{D zzDM=CI%-eVudh9*-Z!c9<_h6n*M;wv$e%5U@M-XP*7a>gAqr>=hP!PFk*zwI1^M{u znd#%&r!9&{1ZK&lWCjspEkbWUb}KOJ4G$>DKF1r_*?UZxx6=Xup;NppKZiNw^9TvFb^s#U`*+RLL)0DZe<)`IGDEbNd-Eh~GpywgLuN>fe}~$TaN2 zPG*^mgiL1RW-2*Zuyj;_2mCU2D&6A8AAs`A?OhGs2p6KxbpD>SYZ8ncBor^Jnm8(x z=~R->ink;A&lH7JgjOK@{eF>QYsJ2tF4m+ZvmN8n*Lqy0=@2P~Sfu@IsoH4hfQ5WX zLpSo0gcjK7fJapp)AlOmmdRa+AIHjH6Y7apOg4Y2Pl|wru=BmEbgc_zXq6R&=v5_U zj-tJ_-C3}chj#hMX3Sg_S9kaozOKZbS1Uh{3@6^eugub0D{LmL?udj(THQ@i$g8a& zoXxGxZM&{R^OAC(Z=4Hy@Z7#UF;k!TyzM$T{Cpu};WngFZ_o8{>RH#;Vkr4=@u86X}YX{aV?)7=`7O%m= zhRv3&@{bi2-6CPI;R{tmU#|jE45+J>1jjJ+{YATA-I*(Vr-VwDWzj2h&m%2*v8e;kl2vIyM!Am7mNwPbTp5+p zIhR+UwfRv@wZ?ik>qp1vMij1rNYFs%1{9kf!>5W)eSu<50OT#eZXtOtMe}{BaB<`& zAO$30G_lhynZQx~6hG)o7mD83s9*?L6=i<&j-I}-a-=69zPb%;NxP*1ooeZXN=NTV zni~g)scltofUtXOoseQFMRO~^UABTF1zY}owRc4GVPxR`TW-Fs8aKGH@To8e@2NOR zogL5h7cK{&Lfq4J-cw^@W6>HwSC@vBAs}(sdR(o$U1MLgU&P1&T6t-ju{~&VIps6cEu!h8$~fG{sWZ)siTPLbH)xk6#t_IEphta^&o$xX#iVu8$Cw@aZom{&_#Gxr6{7I+ zvbZ7;W5G>s>-&rp=VOAAO9^)7&##4?tG){z_FK(V2I}Kj`5QBN1qN~D?WWtCK(^BE44XSM*MOj1pNRXYiN%IzH46IkA2x8t7fh@3-0uIk16QrivvgmExo>_@*x zdMSorg)=M@8UxTe+=JyCD{Z^(>SI;|u{+0mc+JltmogP;=N`t}q8uTN@BA_?P1x@ty+iZVUZ=Ux#+3srJDS?GWncRq z!^r+V1WgoypI!1cVo2n0r1Yk24Jr!Bj$2VzHy@9Fj6tONHX)7*!F?pq{?pQ}er+0( zcwK*<2E>3Xeldi;0k%kQ9Zgsj^2ggC8t~7!~xk zd5vE?STlmB{NaDR@%nj_nNPQ0%g^6mgw^C99P5~ozhZkFp$Z9Gd?|b3wD9rB!E#rJ zHlLt}lJaaoN)73xASpC-JKR>PYvh1Zb>eMx(|i{F;vr-6?r!zi?kKxXF3pg&ej*8J zmXa%hmc;ZzNOlGpNDg3_y8iiGA|X1271@1#L#`}SbEia3u-#cZjeCi$NJ$0TytF|G zTH%I8{ad3Hn(dpARP%(rqW7OSy?}9k@h*sbTd9xcuCw5&qVU4TCWH__W#2M6sgkr$ zug2T5aRk14i`dvBiRo3_CQ{n=sDkhZlg+6Yx< zwKYCq6g;7nUMVI%cAdibzVr=fCYMMhNZW76yVo_-YE{nHgg^7U*Y#WfhHoFPy#BiN zkU`67$N6&&)z4lN~# zq88@e4KK^dWCEvq_igBTUhB-ZJD;_Z|6D4SzTJp4_^2jnPr9)C_N#s8%UgE;`9Y6j z`6jp@G5YY&kC%|CuF*ToRx61Xz{K`rtmL?}~=#w@GV!(Dg&Y_2^2Z6fC+5MTFoLhr?wW$D#V zs@6sFuuh?`Hx(h3C-ZYpLX*fa*m{wW^?&@Lbnmeof7`JIq`>i3A&G)2q$o8}Kto%V zWr`Y#s)3_oJgFO#sMtcP!10z(-MmaSM5S)QrJ8uAZcR$X6{eaurCRb+cPyvkQ8WUM zX5&dCCecWRG>0adBcJBHOmjie-EeewPx{^@x@RHXyNSM^Pd~6s_d}%x;L-v;(}I%H zLJHHun$jZpX;I5*(I`eNjuG$4NK9fR6*5wq7{~Yw(CC(oVp4HTnkO?YiODQvW`HbR zK9kkB%w(g|PvO$@J<|)4(hCdI&oreM^V3U~(@UA?yDrSTYzWOW<5EaQDl-FO2vB$# z!Y*(!EVF)@(SXaWLS>Rs61O}vPoN~$t09_~8C+~u8=rBHpV7@@+{b0zL1pzcWe&_` z@ouJT-2BoB-Q{5m_#wBD_OIJtRWm?fs{2L!dfJ;s+cS) cFJpN*;}a_9L}kvOe8x&s#wT1d_-D=HUq?IB3IG5A From b27c319547b029e2db30610558332cb1e9d69d34 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 25 May 2022 12:09:00 +0200 Subject: [PATCH 036/989] chore(CHANGELOG): update to v9.2.0 --- CHANGELOG.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fbe02429e..c0bc0301d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,24 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 9.2.0 + +* `FEAT`: rework select and hover interaction on the diagram ([#1616](https://github.com/bpmn-io/bpmn-js/issues/1616), [#640](https://github.com/bpmn-io/diagram-js/pull/640), [#643](https://github.com/bpmn-io/diagram-js/pull/643)) +* `FEAT`: rework diagram interaction handles ([#640](https://github.com/bpmn-io/diagram-js/pull/640)) +* `FEAT`: clearly distinguish select and hover states ([#1616](https://github.com/bpmn-io/bpmn-js/issues/1616)) +* `FEAT`: allow text annotation on sequence flows ([#1652](https://github.com/bpmn-io/bpmn-js/pull/1652)) +* `FEAT`: add multi-element context pad ([#1525](https://github.com/bpmn-io/bpmn-js/pull/1525)) +* `FEAT`: change default color to off black ([#1656](https://github.com/bpmn-io/bpmn-js/pull/1656)) +* `FEAT`: select connection after connect ([#644](https://github.com/bpmn-io/diagram-js/pull/644)) +* `FIX`: copy elements with `string` extension properties ([#1518](https://github.com/bpmn-io/bpmn-js/issues/1518)) +* `FIX`: cancel direct editing before shape deletion ([#1664](https://github.com/bpmn-io/bpmn-js/issues/1664)) +* `FIX`: remove connection on source connection deletion ([#1663](https://github.com/bpmn-io/bpmn-js/issues/1663)) +* `FIX`: set correct label color when batch coloring elements ([#1653](https://github.com/bpmn-io/bpmn-js/issues/1653)) +* `FIX`: always reconnect labels and associations ([#1659](https://github.com/bpmn-io/bpmn-js/pull/1659)) +* `FIX`: correct connection drop highlighting +* `DEPS`: replace `inherits` with `inherits-browser` +* `DEPS`: bump to `diagram-js@8.5.0` + ## 9.1.0 * `FEAT`: allow to select participant and subprocess via click on body ([#1646](https://github.com/bpmn-io/bpmn-js/pull/1646)) From f7607cd9dbaebe2fef1a193ca18702f290de87c2 Mon Sep 17 00:00:00 2001 From: Philipp Fromme Date: Tue, 7 Jun 2022 10:22:15 +0200 Subject: [PATCH 037/989] docs: fix typo in screencast (#1671) --- resources/screencast.gif | Bin 34977 -> 37788 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/screencast.gif b/resources/screencast.gif index 60a18c5541d72ce30ccea9eb600a918309ceb819..915d7fce52f72ea49ad2afde9cd148173dc788cd 100644 GIT binary patch literal 37788 zcmbTdcT`htw>`RdvPmOAfDk%_-VqQHu!Sm31Ph{|MnEZ|f)we5-aAN#&^v@89SlXJ zR}~NoO{G|{Bcj~s`<`>p_dDZ`aqrE485tvEuesKmYd>qw=eVK1y2h0N_yqV>4%pk< z0|DUm=KJs4Ur`9QiHWJ#OOGFRw^Y?NC&fjJip!ofKa)=_8Xg&;1clzb<#zG1t;&9N zlIGD*dtZ)nVq9%4g+-MgZvNyEw@#edv#I;I-r!cTzUQXO`)k18Dza%J+L+%U&R9fBA^)F`Me0 zIjy5*rl+E)1ZTtoi2Q(gK9F zN8b6|U!-}NC}vNrHTjI)?0C7=>StQF@L{_%VB*8iJxWk;NN8AiL}XNSOl(|yLSj;K zN^08O^o-1`?3~=Zd}={qQE^FWS$RceRdr2m9j(5hvFToOOKV$uM`u^}eR@xCU;l%F zhl4}IBco&E6O&WZGmjoWnVp+|y727zi&Si4g2v6&^NkKOl@~{vYZh8uR)%wpTWX(oczxb@KGIV6@;(L5 zEM(G3Tk4DCl)E(ATEFrzQOr2cq^;rANXGu_FGkxM-%L<-VuVh#H?7ZD-9oF|=8Lh8mJcuKA*x2am680D_q%`n-2S}za^n8|y*&USy-0xw4vRr3 z$@0ZutlHXQ2u@#mDHLzvuoT8~t$Zn5z;kVHDS{X-y&Nfi*I_wIy0m;bTE2O0IYwzf zdL>r%iNi{q`s?zQ_`~1URuV`EnbkyHg5zqEfn>#MvWeRIYKob@%&XKh7LKpdEU#6( zx@+yZ{wkduF7rCW?ylqOOo!5n*ICZZ>#wt224vpkxIb}xlk4@m;!U34xAiyq6ol*= zHI(4ARuCy!xmFmfwy{=}s4u%-oND2;UXpRGa=kRib7Q@X8ZNt0UVPVSqoTaDa-*`k zd1IrBHXyrM-Sot1v!?ZR5;|t zclYM5#nb>prKdDaG|nml}SQs>w*(8i1>#R0g) zpQM>MB5AMBF?U)~P@Ydt!tqNL8L32mmPc01A99#($*lL8?yXmOSrG8$zGr#C{!t0IiDhsHt zCuZ6%bTj|=iOs4HOU)Zm`vmt6Z8qP}`}yw9C@bsR&hOp6?=Y=GeuCYbmv%pT0w3Z& zccYFtewtvLV1{2idFz+jQ z>y{Z`u|DdoNRRj#v%rIwPSXoyj0QtFHKnhyQYh2I zTtQ5SDIg2&ij30WF+xLdh-u_fFlLd`)U^qs%xt9HQ7nql!4W673W9jZ5B&A$;J#gm zvwlg>jHHZVj-_CKh8%I%+M|P5brKvyrodDI5bZ_BjeG^@L4|Q+Bs(d(G?Vi0H)MQO zIw6S+AiUzN2?lhL)7yun@|NSyBrXRMT2%+NdH`19LMuT@%T)R{Z`~*)R<$^|%R`UG zQ5LwM#Dlk8O*yaoQKbyQVYzor)d{p*ZF6#2qRR*G~fVcB7D$05!-3#$VUH!wA#&hUH>)m3XTGu~FET95Ar1Ji0_ zMj4HKKioq#JLuy-ct~j=Qy*z5Dk_wkc?N&co5nR5rn{-+hTU z9-V)Q(1hJ%B4$I9Xml*1uQY;e2lpJFLAW=eU~4ibCkD*F8@#7Dd6mH~T{xX$!B$Zu z{rcA+SCFTQmdoo?S9Ipx4690)0%}qr(?I1XT6S*0)tp&QMZ;P)7>RP}K*A|8A4GLw zQ^mJU@iWiMr^WieSbtU3-dB+|AksPpJA0O`mjFb3OH$>y`cBVok7_Pr`QExzwfE{+ z+Ih^W1GUTZ&i0Qfv<}T>s;Izg351oUSmJGKc83}qL>=ysS)xT9NSNi}kN7s^$)56D z&&BxRC{0$RhB;B>w&R6RaFNjT!ZioB){ba+z}a9b_)>D{tCiR!fp$DY*15wf^oDl& zp?9`>@A>ctqn2LxcHLQ%0E)II+%!&CyyCmTk#|U_j_EGT*R$Egfp3)fLQlS}uP}&6 zekPTe+-blgeTs^!+*O0Fl8hx-R{Vfe+sW7|VUqyKquF_ZkYyA6LrB@^< zBk_kZO`&O&=}@y5N`9c%oGHBap()r$d#>csS{({hakHKKrp!(eU{SlSby4sAVp5&i zF^`MiF$i4DU42{qv#-jUMn{@%1@rGNqE5E<&OEL4%I9px zB((NRnSKm@cs=slKyM7wH>Q9xD~+sfc-!b`gs$)W6phrz_3W#XNaSs1^tNQXK=-ZQ zo5(9B{vid&x@u2zE>K?lhId>z`lfj!8=ZY|wz_E1_5D^WtH$fL^c&^3&z;G|Y>2jB zkIUN&`*7;5^{;O2nJH#l*}mq7Z)|7;ycfPw5fNlW5$t5`Y4Oh&qiU`VXw9~UyCCgHebcC zu5`13_x1U;r;i*C8}fbQ;;t@x@59!__=oRXMT&=s!)iM<>6b9m%{91T1#;=8;9=!k zDuSN~L0Zt)v6#Kx)8Na97ruExCo?`iPoRC|Io9*_r850h^)W=rD}mP5TfRFdN4AB6 z1)H{idvnm)gzC)qutvH53#)tYex`r@JJa(;uo`3AAi9)eHa{Qc05oqB1vG|=w5`mIR{ zYq_s8KFD+?An%peu@WcUaA;qv5Guv>>ZGxVbnxz-5VbWUO%%XW4k)1jTYYmqTQn+0Pz+4U?&BD=i08Q1k7!+c*qreX6I)w*Jmt8Eyh1+d~ zzfB6Rh(M&L>RGpjvK^1iP27J>C-f3M;+^s}`)#K0ZUGuz5f5GmWm6*r4?2Dhx|}e` z^xZZpdMm7g7=3&4e2#Nx$d4_e~qbBeoO!YG>Sy9NNg<$7Q{sZX6*#SvmTPlP9i^HnJ7yDOIi zDTVY@WsT(H^e7G$z`y@A&kRNk74$t4qlE^BBBf2+ErqIX)w_P)>ESJDH7?p7=wtrg<}vH&??oxE zY?6bM@6sM+#Gk*G_$htaAv2vfb15bCliJ-X7sF&j>8zp9a9-xKr?X1YSz*#y)%28E z5GLXRCMdz0(SQ&Ul%XgZ14tJ& zF{N-6HCIe22}=i_%0Qpbr(So+*O|;mZ{;H}Fv1qNhbzi|dfxE5C6!=A)tk)6Cc+kF za@|O|PjvJ2gLCC^AP3E4L<3mUfaV;t2hM|6ivR*G=Timj>St#z3OG1aNFc$MZs%x| zbL7b&VKG_M z%v&WZnOVmwB#Bf&f}AZzhuuR1`?87$f0TM?mU&=c>{L*@5yTLS`N^O(QPmGqL@>){ z+F}G*cH5{-i4Tmx0B%OG=Am3kqN?Rajt~(hv6UC438U`ho%G3p({qLC3i*5>Q5Gp0 zjeUJy6epYKnU(7)TdWgZwRcYwlBHC*@l~4cRK4|PBu7nnqp0};6yQ{K-v{i8t`4ls z79|&D`BV)KiEj++6&11MqrwUCG>S^ z`$nBWN0riWk(X?pE|9w?3lleUq4<>Tw%4zrY0OVS2~y3As1g|^0LNdi;t3;6!l3UU zf)48)&gndl%=W0Cq^ef0Nyx_3v}9$MVT$ClbBlLCwf>qOA4ne4usd9P!njhogZi>E z`}lCq`JLiD4=3u+3Yfhyq}I_ad;vNAAZwiHd;L?bKu2BF)B4{&mGhcqhlg8qfV^?X z944c>=h1mLs&a7~6_1UYLk`t%Wq~+MArO5m6`&65B+>3~*vf_jJiI?}bXGc#`H>X zX9&gvxZMM*`%r0mVg)^^P@b{x1;b+5y) z=+Huu@kq6Kb`3vupZ*SL>I&56J=&jgiwO-m{ZO5AdS) z+%)U#OJQ0uc6h(D+`GkGvBBK2_pCG(#fd%ll>wgpAl(5l`ckbsdAu|oIx}A`EvkdvL7yb(0(9A5B2cNGl`LU)O{g6fl5BVeqAL{N~vFm50r2LN{lP? znFXTcpq}A=ZR2M=8g*|0rV77(03ll8NHr)SWOk$%68a!y?BB$y|j2(XeH z9v#BIE9!D}3`!&y$l&@_)Dkxxbx=>K)~8chw(^ib4U1EyV+L?wqBo-^dL zT8>!EZ_cDy42SbMRj>l(8?u5zW_mcv{o$=B8+k1A8QTP0DKn+iez$XvKm$}igQb;? z%(&tsJN>Z5esQznhfzbH3-^gEmbZ_Nh?`aFZ;f)`#*9oxJsIC0WoP(}O8c~@k2E9Y zB%dDKcbgx}l&BW%h4S9K|9PkJrB(TeOslqU`K`D8fHjaYQbEmX6bEwLsX;-df? z(G54*OPQ>jsH!^@bDfP2`?%9Cz6GS^G-6rmM=Jo4#OtG*1$!7uv8nuwtsG?UKZA`c zVxNSuI#u9D512k1O^|(L9}LLM+r7*w40t|E`869XI2U?kF8tzLr2kxW?p$owTs+I% zdU8_)wfDj(ECN%YKm*{jux7_jnMz&FYoYHZbK3@IQbf;gky1BF+ zJ@Octr^3=L(U^SNh<=X;%>;|h#Un;pp^m?1YWS&)Yg~t)_*t_z=LsPnx63(tC zdZgz%v?o$=G^9%*uM%*hb78&)rdlHjrvPlU*`BT!Z*vvd%^ua8po9fmF~Ib`i}M9p z?SaOltu+snItCT4&&VC=SAI8IvNJG?DLwx5S)E|n-WZqE=O}>V=o0?Y5+PuTCvSsr)~F2KC@Qs zgw$dO)eo;(TD^(xUW z1BuEM_=gYUT|nadp6>S_aifhAsxEyB-(c$BRJ1x{0n@k-1&!*ulkHiL+ObNEJ)YW9 zzz4(!)*g9P!aiG`KsADl?YE=vITKj8CW8qYpTv)S;@$sgTz^Ygm<>$=@IO?Pgg^7c zKMOVk8{MDY69I?_@_bg=$F~0{+vm^gZ|CDbf1n-!$%=R-#q3((#7Q7KUYGyYmv^Mz zVxdt>;ZZK?S7tL1X9jwUf6O>j$I4xC{MyO(LnX%@?jN@~_HC2&Nh{*RoOKl1i|P=$92kL?s+-YE^-DbL@jyuVZZa;J80hbH{9;n>fn%Rid~f41iT zY`_1r^X1R(y`Oa9-QHun{rd#8{#n){00JQY7W4uS0bBsUv_~Yy+d1YrRMt}Jp&)Ur z^NlJNNYAJj7flTDlzV~;iWFbQ9U-t909vXSP99Mi16|toFO^1 zKh{~^Ks+>}oFss6Vqszf+5Ftq;D^~TT%0m6u{+4b2zeyv$AMF0=18$klZv_NbAXvW zzd#npQ4H)y)WPfbrUqDlsJH1s#a@+*zVzZz1!!QQkZ3lq;mSAu)!@DrZ{t+cw!835T4}At8%f! z6CMz-DkBR0yWwVlHUWBrY7F%LCuq)_wF4YbvQnql0?Djc92;yi*!n77T$d;srLLP0 z2InC0Bt6WF?3t6ic_MTv+QU$&MMvimDN=mDcCW=HE^&@toij?T7^}ai`FlvikN%6A z7cwbQ5()Zq;1roTQtj>nvA28`nAxd?;y8{HKn+2IH>jnRS5}EKP;*Dpfa?v{uLF6g zw059I;ty&Qde#>o=DUw{9%O(v41d---_F2nZGByB&1+~x^bcl?&3E%R24-#TFi0Fv zJ6?CGCm4oRmDWY)p&$$ln`v+*634`iMqQaC=JXvi_ljCQ8?+jX!O03KZ6R+_C@?1* zHM9MVS|_wt1)?pv<8w#yggjs<@GoTi0Oudbd_i77lmXd?|E@FV&F%^yU&ju+Ujs4^ zdP5PMKt4NyO18TBP@Tv;0>CLG*~=#EqO{iL22sShEnDRgo5*t>k`gdn!+A|<_zN}- zt4d)Fn75~-iCr)o$m$;gqCJ9vh^Pe7Lugo-Bo4ZpVuHwkBTpDhsJhcS;{qI^8?YM7!D*NKfkFj0t2brV52J{m|3&62Cv7IGNV|SF&=0L z)uURsl#g_WLu?3NHq=3nRT#qMg(jNisQGPe3MCl&t^ddz?*xWk-f+P3k*UB@V(OXD z|LQdc2BTmg0|Oxj2J1v3!00t;4c&pn?lqil81u_d)-P$hxMadU30nb5*cEv?K%{7w zL>p>D1oNx){jC`1KG9a@q2&xRNfh`IKDGX}&;Qz_aXkHSR}FL!} zL=Xm2ycl4Q4q|3a$)sO1&i@;HAS3v;eHu^GkuHqb?b%QYfzM$G=UGWOnk8NKI0RwP zZ_~DQ3}#@cmVu-gWjYD;Iu)s#lkq>B#vOD3uLG+8HcioAjl3q?i&UiV({spJflX8ljGlRx{Gl4$c!(!23P*mQU_sTXRY*9aCN0EC)wG- zyBw;Am~|WVTOXKWbZ@58!A91Ifhmnaj^I=|1Tgm$-YkV-K0dvofl3mMKt4SJ%$o!< zvm+;0zbe9UkN@)0?(s*}AnsP4fG-NINbbRrbgWo;3B~ESD`6eP3E{lUMHJ5W;DoW z7(vqS?Fn>na1ZO#8@68O5Efvf*XfHF+X6PXaMg9Lp!a5~H!$>db! zXlHM2X7)U)7LKC`kVDkMX>uv0f^t=joq7sSp-+JCRz$EcM^}KVssK2}z2q**cuYn~%6U+e^ zVktetMOwflHn>Q|QCBv14DI$K)uPPI34i_hrTZ^vo;eD4hV1v>Vadb&-(uSLO-x?Atex>*Ao=ExSgOMt)a)xJ3xN!=lpvf|C8oLBM`q2FU=6}D#L~&+ zGQ1D=*}`#GVGt{Qh6zj3CWd2KJ`RSMD=@@Tks~#ID_Xh_((%T-BTdRs1X>D)E6yYZ zNA98ih^3lmdLx*Z7Gve38Y)hEc9N@`8iQb?RXf^~9cMV#0l3DoOHU~Y6j-CfMCFN* zZ_WUWHw|X9(^Px$jO>TR8UuS<7?YZuktgTfXisdu%T6 z&EHT3K90>&WpT^g2?2!Wxzs=xukr+wyHrAMw5zz+!(g|`gUb@Ly6Pe^iiCMwxa(Z2 zNId+ts%<3b@UC%@%vh3&^F|zDp5e*VM;b_-d1*j1oCsBeT-o z+e5?!`1IS-gy7PKl3AkHPA#WNbyt++xIeB~Qy_CBz45fJiCDlnUg{NNzj+h(CeclC zV_o)6x9f}8hVwA$QGz8e+)1FcS2ji2t`ePN#qndkCQJ1~e^JT%r8mWTp-fYfWqI@0 z3bINE9Sd94s*aau#5+0*-M1;rq-D8tMN~f#XtyaF508ncP5o8rBvka8b5FZY&nvQr zR(j#UyZW!Zvf_oyuYHkCshFlK)?c@?6PS-(s^aYQ1`Oz(UrgriP0r)J>FR>#b`A+jaIIeOm%Y0jPxI2(PWlF-mqlZOvcVp4Sjp--}%L+=G=t2`h) z#JK@44``ISdrUe<^kR=!eXbtP+uc7b$7cRG;=qX3Vut8KfokdrPLbC^&z{fjZ#*5t z|K$N*Z{R)uH^w1w_Wd;l-FkK3*r)BctfmFQN~4_S*0bNO*wHehs!&jvUQ2MF&@2mb z#{0TIY&!eQ)#}BNLmkbyfD4a$;b_J|nHh4)Ws4Iuy6H8iaf(DjBk{yN3fR07;QPMw zgCYq;mXoxm?C%_PU9vf-c+dhQZM1B9{XC-jS!oIW$=-oKaPv)Sw|0s$G>hGPmEib#_G6L+#H%|kj4-20Qyv2D(=z>dQDG&<+v~$PqRfL>O1%se7+_?lh z;C780$6G9nf+5sV#@mJcCeMK=62;wfMHqFIcr^UXR_Lj|#c!+*aXq=TV5SW0uQLWx zEYoHbDFG6Q_+0b$InDT4(b9X283mz42ZdrYY62{!_-!TuRHP_eHV9yd-7upsyqsP5 zewZ5BpH&H9rzGnM->la&eIx`U&(%PNU#MW2_gW;!knpb6l(w) zzlSb(bS2!a+Klf*xTe3e4%jeq{Fv+==GdW{gH>K)g1F4VUysa1;XekBJtI@#G`cL0 zYs4K@G5|gsPpj?MgZRiuQ_tkX@|_`ZxH4Y25)tHb0pNV3Vb}>X&KEtahR)u`%TUsO zX&kUp7$TdEB@+D$#ATBmxv#0Ysq%>%PpK_(z?#Szy1JJ&O5EFiy$a6u`1tyu&S#BB ze)iWP%M)0;qRg{h12CEGh4vSQon?b=d7fHAY7*{3cgBNAeJN(9mzptNeC|;w!HK7N zZVbD@O}oAkfP#W)8CyP*L5`K5#vDAwN-Y)G^L82UwKGz)$Z3+1IV)on{7nE)xq9=? zb~XYA6FvJ3FQM_c!myH%cqXnUw5)*MK6-5?xDa1tBpCMqC{7!ZnYk|ImF`J(I#sod zuR70i;_=`qSYdOB!9(Yn&T8)`s>j~s?p=7nSm*Y!$hT{9T3Cihix#yNWU%lAC@RI%)f+K;d<{DCiZX%)09z z5h&Ifbua1a#j_$cPsVj{kI1ARbd!*O`UoIDK)(ByM>%SLQ0M)y4;oN-j;>-a=$u8Z zbM_rsS)(o-cseJj`QoF*6VI{dUay@xW7$#GgmCUxmTNVb_op3R0d<6s9O;KWEpq5FCJWp(d>i z=zvvX<8?NF)(8Q}fw^+FM;o93dl-KQuTaudOt{hYB(cPRjG|O?c{=orJp3prQS0rJ zdzpgeEC#a}ndSGe;>u$1nKHY_`{6-nca{NY>pj3#E`Qvazi4Fa{f&;JORp~V@&lxg zeWeK9`Z$Fvb_eaVZY>!zEA9$&;kQ}lYpE~^(g&a8Bp5G1c}Gxr>zZOE;^C(wBWM|5wBI>oz4(P=&>FS*(-mG% z_1-J6J2kj;gD+3C*rF8;->$djGRR))GgIll;o=X?(lcsUwuyYgE&v2daL z(Sydn1wb}KhC2FE>{IxxHZL5pj*3`=7AqG-gtR&@(;n7l5k|MinH`_5s3MF4fq>n%B1w&C{< z$RT~;5Tf<=Qb+KY8=j0LhXDSb(KT>b0aq2eErAm{W~;n1X;qdG8F>Iu_p z;Km)+cP)M&z6--Xi|nx_s(aF|zHB@!zIF3fBJeZa_Sc(0pGkjSZFU}#_VOKol@=^N z7p%A)Jmz_JSSmOR7nH(D%oPd9(2`=?_7!hc06*CTG=e3kL-oBv4I%+0#8nZ4ke@J$ zPom`Njy4Dct@|oZKO!zgg@M|c`w*!}~=fd2`A-8DU zd#A#*XTazr-qfUsOm>Tdt`_^(!hN^GV#I*51`!_>-o>&Lx)R|Y(xCwk`jkkd3y+*A z(cJGNh;=acS;G-aP4$M4l*5mt!k*lI&ef&*M`q+oTvT^FZm8J7k-4 zUJ1*@vp1>y!v-?h3WPMwNDC)hb0V7pI(|g{qa%wjkdF}{pW7o))-X=(!wRf z9Mf6ato-KFwjOgN)#DZ{ArE4P?~jxlGRQL)X<45H6eyv2nE<6EZ1i5nNsXvBVg&D6 zq_cOXH!;%fhrhWyP_L0KbuQd?DDdu3)-7^Y8#VJNZ%VrcRO_uH`r}q-h4ur(n|+2l zLypc5qqN2{okpT^iqWYP=Sfp-4m0T7$1*9iXkj$Y>_>90b91iCqHz`vj6FhbRp#nT z@1s-KC-H7@j^RCUdR7UKXMFM^%U%WY|-#}Jchsy4m<6X!G=TXG$ zT;7|}IMSd_{fdt4oaeZ$W6sH0@cvcS#Bm_WoT!_rA~bx_g(sF7o}d9{?0Og6+zzRG zrKYC@<1n*czFj!}HGt3Qgol|C7cox*Q*@EXXB&U?G%WvjgFViu*tFGP9d%kc_-Kc+ z9+8^!lJILI{fCWtS~AplX_k@I6vg1_!qG->4RvEyc-*V z7zx~nvhcaJLJ#fIDlS!wTe6|8VW3Sx8*h#_bVpS;;p#qV)_oa9^*=4=eO&#uy>9nuT?wiBwnz1V z8)&{%hw!DLj8S}B)ygga%<32%$HH-_9&c4o@U6!mx~J;X zA}|KT{+w3-T6<5$|7-1?C_IB=SbHZc2qW(-?vd-fOu+1+wQ_G3gN_tu%HnQ7Ba*$3 zXnpb}oSn({w12>LI7kT&4YLbmgE)Nj#>4U@R>^->@QzF8P{V2 zG3?JBLG*Z^_G@Uv;VrEB1AqfR+csel-vO*Tg|Y}T4e)HO1WN~XQ8+jZu_WqzZH$f* zriZ(1Wx(f~d~I+dC1}XR?Qo^FMu`aB867H}=t2ibz5?erc2npS4PPec+jhrYw=#1j zmN5kv67e-9^FBcZ?-I`yj9|vA835|2_-a^)Eo9l zQE{#Po-r5#0}-f4T?-QZR^50b9Fa7obVX5s&&8lOs3({pj57&vmMH6jAtdofj4r%_ zfHLDMR@mR|ff|4V@XUS7SBViRZ{t3xjm#;Xn~{(EynkYpB*l3n z_KVUC-R%3RnwYN&vrXiO$u|h^Nedpuq`CiP!QNvbegE{21v}Tv&HV8n3$}mz0{?S{ z1$$rjNl;*wVZlz=J>>OmYo+nwM?HoGdtuh8Z{q&m?O&SPQj3(H^({mY3e&0+E`(N- zzRVV`F1_S+%u;13Y>GvTpA(LMLjmB$%6)$<*fz{ap6_%}>TaY+5Eg%&9-|tbP67JI zELY-x^Y*MHAb4i!3A)-+6cCN&wo5XReM15uX^NQJ35!f?7^pN^kjAiJm-xZ4)RlBQ z0yins0dw%$zZUErf=#6Jzsqhs00Q#*pcn{atQ7$mA~d05goWvE)v_?|2FQ~bKVkp; zgt+yGMId7IAka{5&6;frJkq#mij07?iO#H~R1$?UWe`S$MeUz6QxbSp4i^r_^Jz$^ zim;9g;Uz2pAt=NU5cBod7US{;;DQ8RPske%58@FGda_b?R0qz)GvUVN!#BXe=){esUr|8(}J&gS=?^| za3UTAAs)W7wp!$DOQa@N_AHq%Nl*&$Ih4R;P!T zfz{VKO^u^px!MYs9z&g9!;kPz_VgYym8Pbxb34y5S%DT%xhS>|$?zpxXHZ`W-ZOk+ zKy;vr;v-~ex@3&`z__*-z4Dp%mrW5q0D(bmJdQ|A;s7x{U4T^~}uBCuMW$u_8thJBqQ`ZYp8^&);>sYeTO_Upc>PbCj;By;6 z1Ca=A^612-4m^Nc$4X2Pi~=S6>=YuScw{^xqCt^RZGL<-BphlU@wXhV!Y`&Xsv$kJ zP#T7)&G5u0!^GsF%jW!Gv37(w_r-r|W2jbImr)(?=|_EnJiO*lj@#V;9us&ur+Iaq z#qiBKM2HW3{Pe}8sg;O9-3^Hi5l&sYS%1piQ3GynifOFX-CG9fxL?0n(CU-HXi?(P z=e&hVItO5H1QdJEDdos<-tRQ%w|73%>k6j?{q!==3KtPC@{^xhBt@8-x6r{gb#ka` z9@0{Nr)<180)fRPO=~Ql5oMPC?cc~fjSs5IchSa>wfcAuz%ls5NXU$M&p9kdnT|>1 zJLvF!d93ixht%$Xe0kJA;|LF60C_nE#A^Quu{cKoChyBW!+Z@!3AwNQFsdA2Uqm$U1~>oIcdDQw=S`79~39ba|E|{ zicxz`WVjPl{Cdrz&SZGtqfF$K$q=(4q~y0P7IscYjBJfNMVPW022uF~gJX$jvPuI2; zNs%}|ph?qWJ z9b$r#kB^y4g9*zQf($PUnH*jvALihHo|!S(18cK8371m%({&de9;&`q+Q-erEX=1w zOH~wddd$#Zn5U>c)n%tomR%B@LUFm?SG>yXp0TW3$oGCpr?xCTF^Ox3a@sR!S$An%?G4EXhvIrtyBndMJ65*c|m`9JfV z`6tiiO*|PF>MTiTHF)gq&nnz@>2>K`R6Xq{&Z)l9ntVgtR^?Nt`C)Y>9&T+rf&e0r z+d&6`WF%QXCN4qOKQ2;_A?TzWM=<$gt@!a^2_$_{3gRj*k>Cs_)<6Vl9e6|OJsqK% z+7!5KF@_~$dPv&+86)EmAB_l#*dr(Sv=^THF9PEu0HU(_CS$M^UGtEd z5k{Y_l!ijF-Zrzv@PYlN{zLz|03tQ(Vd|%9H;nA6s2hWSkb%Qi154&?p~4%-kG!b0K{vx9wXARPB*T~72QDBvo zm_G}rQpBkJ!G~C1{V(^}Sa@jhr93PvUU(%xY2rxl(Gp0>!H5L%X~F1h0=@^bpkPEp zd^5v4MQUUnyj$Y4zkgZoGrul*ENj`q&raMluj+c`h3buxM6=6+1@%iq60aXmMcD_k zFAdp8*3@UelpACvK2GgB020fn zjxa2@t6p@ho_~0dE zpN^0y4H9nCyC+fyNmmb+4;NU_pTPf6`^~OQVpqYvsjQXm*V1dNz%$`Uemu`BJb@2h zJat?Q4~cWAFD|m>cb}TB-tK$628Cme(PJmd4JewIw>ZhpBE5Z_r#0$vx!D!MQ5T-Y1nzzHH@ZshF&l@Zxq3xqxK0^} z8%8TIRb9RQ7F)uOwaig5p1=i}2LVDaS| zHy_Mj2CzKRhwYYZ2VC9R%nX8bYm080;SrjovXfck*Kb1Kwq_Am=Z`)SZEFkJmskus zPf!#DgW)AcemX44;?Kzvd;;VtzDjWW(|XmdJd73`p_FDfj$|PMDJQ+nMTJZtp)Cxb zwX=@aff3p?Cp!sU&nD}t+-PK`Cmom%*Q^?xDlL-sGO@-^SQ_hEzrE?PsD2$jChS9Qj^4t9Hwh;y?p5QbiA&c z1&d{I2V5P+f}He_QE>fOEO)#v1&a#RfhR^A{He5b?W`#M;w0^h|5a;Yf;{qdASA70 z-vat-cedPzOV!r>EwmO$I7in|B8xw%5(GKi-beWsl`vC~7@kwu4EyD15kqa$>g@C@9EUl9#RH=T zK(T@715zH1ZaNrl|B@76C{cxaXfCsV3Q9aZ*tf?40nR8T6+Q($c>gcCC(}}4951sp z{rHlBa5g4M6U~sI5K7%wBfh1|$f|R+Ws{5p97LHQJKI+-e3d=)@rx(ldB%Nnr-$0q z$@?uTxmwj(x%?OhuQ6PcEI!l{%nx-ozG8ReGmi_}w@!?Q;_6)xIoU9+^QV~GIsh^GZcrrn z{P5o?>I68_nO=et+V5mwuc4i_l9k2ddEvJOpM_~EGt+_aF+^uCsTLJ^S%GIVSehit z6wS(u;MXViL-0>#?k2V>%zYX_>bmi1n7IaKL#Xl!*U1Yf_kypaR`6>TlqRyXzFs+Dlylt)b=GCvPEs0@{v>p!XD^_kDr%CaRGXU7-tuxCBy+5vyRS zxeRsR)V3YM!LZ&9Zhml z9Oi++j9`ye(d#bgc+KBik!w(xR$L=U1Gny}Jg;}W=CuRzW7vml}1+Qnu zF(20?8&DtkiZj?HYB+7t8iW09HA+mphgiRCpq8ZtPR1+ zW+OyZ?LZ|{b;A?Q2e5xly?@{Q{vXO(@h{)jh{B&#duBhlhJ@96`HeC7mf8EnH;dz` zlc6VGwpYAy_rKgF_lIxY0GIz4d>e55e-bY3FX6U=KH6QabhuO>16|s+l3dquqmsV0P%y!ahRAfhqBtIP^LTDY9!`^x6jm^*E4OD;UNrO~AfPBB zU_d$|O{J=!s9?peGtT%PbY||ozkA=m`S4-0%Q|bXy`JxrLi{a&O_PtG==pDQF0gAlY3lH5Ey}y_z+!a5{ zpQ4cI)o)-<4K3EW0`=OSP34ib*QR4cI8flG^{Wd^TFt1m?bih5dp_Y(rv-&K=UtXP4QliDK43mt{@YX7I^a7IPqI+UuG1oeZbp-tP5 z*iiut_uqgL)yb(?q6+bv2%LNygl@G>Yu6E^XE7mAHR4V&8FB8+Xf1iPB51o5@lo!W z=4~Q340>;+y~}h?F_fX?L)UsCJ()8v)QtmOMN&@vX^yG9=F8E*i7&aP=qSu#aUvLJ zFRjWrr1S5pTq&L~Nfxw;A9ILYJS$1qg9cn8)1aIo7m1C1icEYOUrNzrS+e_;3VFZ~ z!galkiUFL!t>W^=Z(EvohBK z+_C6f{(Ooe#SqD4or8#jh(i*oZeBcp9su zt$2^yR&#N^@qur~bri1#Mw~IBmxb$pfO(fc%>l~~5Hs|l*bGn+nIt-#Ctl!)+npW^ z&OJt|D;>G(Vb>~vIE%+8weFJ5+~51L)-3_BjW_dIL?F#o1$wKG?v+~A=6FngujV;D z?gXzxee_?I*XRkaO;OG#zk6tnWLhJlYJ2KOfV0mUP2e#vu0O|jFoF^1jSz0ef@v0e z<7)~%#*uZUVUEc9^NBA8{|Uk9?V>C%w0i^p_wL=B@hh{)*v>3^q0B<}jQK&X!Ev?i zJNWd|ulMy7Rqh#Svt-`-9+0L48igDBkwjurV|?If98Q?-2i?ZAh2wxXXfb16qlBD<{{Z|R7n;_fWDn>3?pJA1&4;^`k?~v?d?2cX6~Ne>@Ya$ z1y`C&j__BS6p&GV07^9gG7_)k*dbw1twrG>ND>7cHlTn@mIMX-VD?`F``L*M@>1`f zX%^=defvAF=Q8 z6*Wu>w~2t>E4eE|9(pF(0Rtaz&$sE_rAn&#VHiB6NqmZ{Ps_IaF0!S~D#5@=p(XPg zkC{Q4pngeXSW3LkpLnvf=@kX#btGf{)|@X(lXNxCo+`nuG7wuPV#7Qcy$gI&5pq{U z?P_GUXnWeXk_G(PebESWi{#_e`mi!4R0=cXLi8925ps@SyO;b!{$ob#Bt!b3?%uMK zooYu4qCD<7{Gp=lyhJyCCfHUP3p*uR#s8H9u)e+L*neOdzK{F%0fWhPa*6*K@{EKr zZ!%*ch1WEihdRwdVmhVPQ>WP#vNjQ}JK%0P_gM6+2lMV1(h zID5`05;`HJ_mda+3LbamAuS)^)?GvB`J~$>(&2gl*7Z<_Zq0DErA!@H=ds{jEQYmBmVFLkGm184R zBu1bBA1yO^N2;AZcL%(`aCc-3itl$2JLV1iRER?&z~l92ePrSY^eh4}PXlBjzK*yEWgW47|tvC zREU^#<~{){2Uv@H}32@koMn9hOlocDL|EH|mi7Gj}(qontdO7xth+RBZeb)h}#5(VSeumQk1-OaY48sXp)=@cZJVXYEY+or zJh<(re!~#mL{=P3B9MkA)FG6rG0Yc+q#NLs?0xAG_Rq{l?D1LD!NI*R0i_1fSSL8e z$ih(F%95?tcOUL|P>e*JwS2JaBU6_Ye(z;4S~ob!tT9>24D9k-R#99b3^L%4#@|=% zT)%3lIjHhDvp>nlxZow%wU!4tqr~U*oJ#^tuU|Uye}1@=D%51fzs144oR~jmDPF#H zD@OV6svR2Ao&A(*{8t|aMN1h5rZ5=Ze{hR2$FByNbF1Q$h|N;#LYi`y9G~}0?bg$@CRmHz}&t2 z#oXLq4k|8WYrXwZ5mL6P$d)A0|WkQHG zHP!2*W9J9;uox1a1|il0<vCws1+e)jj(jIy2c{_5C(9?E}q&`|W1iT?wRSHX=6659w98@c!s zj&}$6!sA|jy>W2r(I0;>&&9Ih;}R2+lTu+Y6o!{z#_JbwoX?co*YCf> z@hZ`HArm~@A1E{}t^Wnb^TXsAw}1h>CfvyGZ8+W)7~X`B17L2!#vwS~_@uEToZpym zcL9Rq)wpsY2aM5AA-xCk&Yia(KP?2Bp+5idz59Xb)bChvFH?zJ2ZVsq3Q^6ZD*-PY zX+xH(GDuh=JFQT*a$yY?LLP$S zRfoVNejihqsrHMPKJF8;X;o{HqMgA-RJwP;=F*!hO@f~HTeYsoR(uP6W!CQDPG#G6f95I2Q(a@@__(#2yIdX*|3T8b`XyZBz*ym< zBX?GKH9Z~MEd2lSQwq^_scA1!-6eYW#nh#^DhuscgJkT{BiTUM&Z`agFZdLNcM$;$ zK{)Um@6$cDua|9)Z#wdFg$subb>HQkZZHc@1o0h;@_lL5(AQpya?|7y^HW!E^N%af zZWK+U0(USTo&4+1^Ox_zU<4t1JUw{o2pPtr6c5J|fB{93}#l9UCGOlKmqd zNg2GB5~x6I&=pp0t^$(ZfvYS8cWW|?+8x>sqIi?rQjt3r=GT&>-ph*;`$RBI4Pf=Ul$^ELj=BVL{RurjKwF?6iAraVB{neOGRTVvG_dQc0{+`h|%vSKycr zW-VI;D6$D~^SmHyIW~NS5h*2+dc(wMvTY(}L^ilMSeVm@D#!m|p7r}WrYQHkjv5f$ z8eJCKUJ;HmLv(fcv}TO)vXyRt3yRe1^RUxvsa&tZSUVLp+7%R*{r9aAq7E84iS<6D z_=tf{qO?KM2P_+AP?+nlFqMLNR?yi|xwB3^N?j9ZB?U5Lx%7SO!e3#(SfZr>3EG5o zaC#v7ON+Udg74~t$!V#>XG1RX^@`InW(iI7EAxb<7^d{mp! zSiL0A;UFYVDS0)Vs(ygnWqoRPY0g<^sY6)p7Qv%BQq5T>7e1ZQh(4(nT_x;!`F5C2 zsnWjS&eI29CZHXx|M0}}CNej3icarb_ulb<;05Pt#{S@hIVhxEKEETRa^TX94;%Zo zP9`4ZfGr+C`@=|rsrr4tny+8c0xJ)FfRQsaI_j=9)}z?B#_RoPndJ0$fTdtiqvEb= z&t5+INa(_SXY(t^qGt`-#{W!ynH*o<)<7drX$K}dGj_xDVc;>X*hhc9JrT1skKWsM zlZU0uI`GF-w%gG(|Lc=+W%ii|5318G^4kQEQ~b3ovCR*$ zq2ydWi;vknVl+aP+Xua-U5VcHl*hkYf52*(FzjkArO_n~IK{g3)Eq0K(BP+;+_q`>Q=}Hw*{8YRgct!HQeu4)5vyk&_YDJS_HsQl|L6T`u%{wd6aB z@rhUM*(1`j(x(Zd2BOwEnax8|GL3r1)`YO5J?kpz4JQ4&I`V=LwW{(FCKjn0Kut}J zqCv^HaVsIeC1ic)K9LE7JJxxf`s*rY-^Ofm-HMv@2Vj01W>#K$;GnWRC9)C-qs$R` zHlJ$l%VA1L>H5!oL}=z@GyPIy!S^(JSkEFBG)KTtmNV3`#gr2;c=>E}ov!#QDl1yH zq)%%U#%491R_2r}Ds%R5`ln)G?&W=2OkE-^{b*bN`91~>+$tFXiA<2sGDl6)8vD)M z9m}80MChB&=9FHkp&V#5wHco+=)O`*p`P6|(KDSZy>DBmKDlXL!C~S9bTM#aj?oP5 zZk6b#2J1kkM2zUK^!cY)-x_rI)nD5TMq$s(tZ7x$yELN)tvR2y;}M_@y5B*vi57NKDk4?PfeTEZ-Ipy4GyuR2$|=A8)#%I9D(A>rEUD z-8+;Wz`dXqu>YsrGVO0Rt;ThGJdAKF7%KQ@@xgR;8Puy>2Ah!Bm>)tOK)scc+#}MK zvt9qNX#qTc02UX3;|<^!+JR(3Y}#`KJ~)8p3E;s5oCXnCSYd8WZPd>!Dgapx&jfHk zv#8d(?pioM*Y*sbg`H_c58W8gLW8XYd^R^>w0dGbiW87O%YScSH3CmqZmvQB&o|*? z+z+eP-T{XKw$PhE$wo=Z2Lfhnoh4R;2II6*BDgKL(MP*k3#Im@7^WKs6nJnTzN?vz zNGIzh5|J8$w9Ewpo=RpzY}zVkUduLyjOp=hDeP+QNwY5(4nkOjK<>p!-)$^{04g2E zb?7?f2$lPZ)ycNiz{S~`moNg!IJ<#5!R)-)y&%|tH>AVOi$$XYtzbx%aIZ@|WR2hf zZehCot6h3sfr31GC^3jlJDN6}EyJy=e7$3Bq)@Y{viZ8E;O+Bz3Tw*UTKv;>HhC7u zMR)nmT&#Z;;Xf3bYjmY(@E}3)3}LxP?wfYUa&qIE9+S@@@jLw;_k8KjB+0X1Py3D5 zpSTuN7V-Jb!?P}z-W-bxf45q2)`%{7HuCt(#fwINIgPeH6Rs1GN;nt%7?NP2K+H6O2bHi;3hKcD0r(Vi1_^V2{xnL6zR7;=M?emJ z4B}CZ?yi1&yzX2SN@EtS3&z1Q?d{7?-{i+7=ZKOQl9?d$GS!Eid{ z4762_sZyu`;@A8sjW`OM3GDw7kcRTp+){VyDHrT;PpQw}w63KWaalHUfIc=HkFaMl z$_Mr_=28me6qM$|J*!L4cKbKMkXx}_(@JZ={&P>yHyKP^ed`RzJWS2|J!j|snwU8y z3qQNs!|-eoe8V!|sfWG3njelwab#k-(F0m|OH%*w8k0||_r>pVatN6Mey>e=cX`~t zn3ZZA%gkM?Zm_8zdOhFC4-<4GuTHPB9>gV)?IUMHTIMF{$a0#qJ_qr3ImR@2%MNOn zq~^ALzVR88`nE~s0!VXaeKSyFaH#5dpMXiDK>UsnNZ9yLVdM4uBmc7FMhxWJ7KIen z=d-yNVlRCBw8O<9oBV?vXD-rVeD(`6mwZlS_&M2wjCbuvM;}*soQ!r1mP#$8dPy9E zh0_qqQh|Z@L97#bhj3wbGCM}cZCAOYuUxgRzo9G*5g07%AQNM*YV71_;1oEx|L7f3 za_;lck~JTzH(^gvrfhP436ni0m$-*8FN#^=uLPZCwJL2{T6V?q=k0YP3enPocXRQ} zI0myoP={RO9Dn}$N%HQ`*A}#+rTG=}akD0_Da`V&)j*T%Y*u1(La}9K18mwmH7X%8 zKIhh-U)Um!qTR_&zN&JF68)O3#?)eu$fg9JXCjBwss`qFUOqkRU7s@JcCx&|g*W+u zR4Lbl_cb;ya23`;j}O#MzqeVu7_YCaI2gOCB-mQ#3Z1H$@MwqbYr9%lz0X8#XD^{FCXNadC^~OJlRLeQ@$asrKhj5P1 zIes-!*ed)noqVSYpQicd>ysRXgL|G7h{f!g|NH)hf-pDA7okIM4D9`HhkgVHY{SVd zWfI{HhETtYx>loV=jzss9wnmpu~vAnbnzX#PH`VmE4pxa^qt*>3kXW2=h*~78>o3L zBF-x@*hWSo;CMzZYy}lnD_|Fnh{eMB#YAhY05M3Ico9z4gM<7? z_~oNJ3N9EZf>58LIYRGZrr=2!2niuj1Cs_*f)|8E6cu5HeK_>O(uy8ZU^qiuQB={^ z;5mSKvAnXCA^bsWT2q**D~JGvnolIvj57ljEqkUJ(s96vuT4~A3Ufyz2&i)5_gHfh zxZi6v+ncD}8p}oM`k33ZYbMK3;|X9yf6dg7A_~0Ki8Y{~ns-2LaDN`zH4cWVGA&Tz zFw1iU+A__R_=YSa#hpvj6)&6GV0N7<{0>uDQaUF;(o55Q*PxVy+&2)!XptH12!I=j zQ915*2cCa_!?Q}ev^tWF{$@%e1s0&wC5#?^4}Whw5J~?2m{D@N8jdD)y>y}~Y=CI| z;6XN-gNE0sM2Np<&8z}g)7V0GbC<^W^-sob^rvUGa&Q5DZuM^;M~tJ|q;j5XVo<1gszcgdMqrz~E7@P_x5S=A`N>>g*H>4AOZ^!x$Kt8y#50rU zyGH^8tvm1I7Q&nNi3?BcL)alvaY$HFM9QgP*Nj7UVKLSz;Z|ue#g zLnJDXTyQEXscl3oBQZgu?DEZeASfMq$mLmu$Xxx^TwM6i4aw!`@V_ zid7NOm70S)FvLhF7b+rxXuS4F>b(RAoI}VPGe90{HWSXLLw*P*x(n|(_ZNQ-0CHCH0@()_#kW>;s1e=KGa z4EN)i*#Q5TA^)H1j8c9)f|-?PKv0h@u;C5loSstT$QAl}HNwEJ=8C!}{q_#h^4#4( z4hEaNnq45&w+DdvL5dsn)HlKBLjJ)aSq1du#X2Mfpi+d;I^@lo@Q21s7!1I#)?jM@ z&+^}R)n(3ZK4_?iQqrwQ=2?#Iy0Er`BxW%`ZHo!xl5Lkl@CM#}At=*4Q+Mt{>DEpm zl1>th`9);{!d;8fj=}8Q178VBIgtketQPwP{xVM;4R+#nc#GhY^qNk5I$GHhI>=7_ z{nwAxnCV|vG$$+cIucp8kAJ7jIB*9O$`vaYFDf0o03Y=Cul&NLc}EKpLx8@FY!1g!A{sxebO7I9Hd&9z&~ zau(=BR1uAJsN5ieMn5vUzupL=Y+iOy$&#>3Zc1t<-zTJIkOg^Oz$up8ARU3UNSE45 zs9Edt!FWg{8?LfISs?;O(!6+U4;C+px!y+Wzw9$_A!m}Zjt38D9gx%IT)*szV(&TH zhTq`8FgVfamWwaRfZw+(xGn9Mwt8;H0VYBku20-f-neYefid*AAkT}VZ1#SgWa_Ol zPq42l;@4e(xSbX}h1O3Lii+D9o>WU6(za&_lTO8=4(kRxvbd}U6m~h}qlg&|_Z)*P zD_LkM>ujG+oR1bq2QQnTLP+%h@CX|W%I0{8;5m>Lsdp+Vd3%9QCFsLK46<|ck69<; zN|T}0K~@E$lBxi#H>3yjM~1Y~0p3duMle_t?t&q}*KGs`Mvj13eWP0-@6|i-3BmpW z{Isib>flyvg&|DLv#WpwLCUC}rR_9hq(zTw!Cmb_-SrH!fyOIDeHOE3)NgM>F;c(Mn2K3wVzfyFUN}4? z{TKkmp@#_$IiUYg${rR~a~v>(?bY)pm{uaLIFr{frStlOfmE}*UJM5_kbhA zeqO10vVlM$=thnAXuSl$S_?2J=RmNO5ZBi0aiX(>LEe_FsOypZe0xL)i{k|iA!XL&#D zFTsy8w7;R+EUjfv|MfQil>MDDarF7#vG_Nu{Q?-iBp~(CKdZ{ST|9XPcmZ~xAoxGA zhmhK|DEY*r@PHks|52M}4I43_oVtj&=I5*Kg0ku2#{V$<(e{NHR;fELEvIDMh*7Kk z@PkQ-V8th>#3ZJiiA&8$NzTl%PtPrg%q}c3%rC8QC_Z0#puDQqh+WsXv!@ha-&+k!Xm!`^+${P;EK%O6?bZ1cCcxl?4RvnT~QVnU#6K`ieVt#k@f z+F+l6TEMKAqRfbt&~JV3CN^aw+VbFLUV(=ed#UXWHa(5(99wUJG3b zIF1>e({5Gk3OjPUw(J_;!#?@X?~&!}YHR#13zDiD+5wNdnPO#vD+cc#OXc3OZpB?c z<bq>t$)-S`KOC~M9r})crd%aAoT>t!POmDA#q!%lHh&M4i}>jmM( z;fhT^4S(#7L4tBNJ3T<{dIy2nC?%*pJ6HhSCMxRjO5Y}tj@FUop*}1 z?bEveyMEH)NQ^+_w&4$9gN9ftFv%~lZW1BJ5xPWd;X}I=w+(;xIKsVOEY5Kn{y~o~iUwe;&bHyt3mzD%p>!H% zWwGgVKvH}Dd9#T2yj<&7ayGNMXWQ^60|HgI4942{mW^e?Jug3-7GYIPJ6C)E=v+{u z03C~}@CI0H826!ir__Bs&1t3F831qKMab}nH>AJk<9*+^yTVZ_X+WTe7GJ94g@P}`_ z>-vrF>_^9arw%+?@ND_>v$x*dr!T8TDlwl&icW=nd02m`Z{hhhmp}h_cG+duw~y7A zdcFheE(n)$|;i~x1|Fs9SqT(Ya*RdsZ^-e<*e z;}Sq2ni}}E1tGXX#z-`zplAS$zv1|4QsBT}n^TE92O08sJoEA0i8CMR9IQ?9Epeqo z0#qUhC($msAZGxMbQOQ77Z$sp0sOw?gsqnyQk1kJ%ml2QP{nGAUZO}tTaq~=~wwnpBdjD)Kww?!AU+?5B zeqdt`QTAau(}{aOR^t3EcD9>T#4f!`AWb$H?jE1XjQsJjnp~iOeC93ALd{mGPYh~& zx_%oo9SF23H{S0^u`Xx~IqzlqtjEoC(#9GMrmb8XioG`A-#YD{c5HJg?AlCg=bO+A+{a&^&*;AQNj0cn z%<0`s~h>0VXb4#?4v_kK3#pf+JOG*Z$iugSi z&}$u1?PE%)>bTC`XT|N}Z4svxpSUyZnsA^`Sv;8JKGxTtY!L7&Cneg6$JaI0#L!Qu zhxD}HZ7u!C=a&VIE9>7xc_-YJyh;YeFKLv0yX|Fhxpe;aGwmJn|2#55U-^e12&w`` zP*?8XMCe~QXfNfFe=wk&%Ve(q_Q*u5v<=yQWJ0{!eq_=dgNJz~i(+!(4UBs@4YB(4 z@MJEIZvPTxKa4LtQ0`v_=xKC%oD3Qa-+p5vWVr+;`Gi4lOl3K?gbRQgsu6xsExW3w z7J6Vhg>D2qE_!$XC7A45eEm=4>d0?L?QfQzy39?z3)~xk-)*1C5#(Q7U0YLIJ>6gX z6KV`~E?jy8y)Sj-z@Yb~H?Lm*`6tvg0(`_&Y%`5N+8bA*`H+0rEygstO!t79mv_w( z){|I>X-sWP3V@KtC#^@dDVIBRCl0Eqj&A$<9V&a$k)zqDxjgy*v-JzzNNLheVDwUv zJH?xF&Wj?ZLzErrJf@T+TyM?K*UAXd19u`@k`oR*yWhzTTypAGAmsPH{G!H%ws;~m ze6dJBHh~|w<>1uS4o6x_IMq3YXC_GUpAVL7A#2#qCR|%`Qr7*194E{+gdWh;#x8Zv zt@iDS`VU*b=VwP@L4!j(NRP~WzMX!O6bUt({JN(?2;vXmZNLgJ`LD(GYN{G|(HDs0 z%TXTT1OM4`2^BMpW67p$H)i7QT*AVcGXVheFJL zD%)}yj?h--Au?8{`cmBqT5P$;LaaP4LRvH;Wni}M7&qD8Y_ua8YX<3`noUybr~ZG7 z`?qIf?cU1&@@#Yv_kcVbZ`h$B&&Da<6timqx!vK9l*T5Gs^;`Dhu-j*cfEWtkbss! zHHWJ|x|R8dcBbDKwUc9oYELGcBR*u_Va>$e5&K6$uLdZq!(0JfAbI=Z^s6Wb-9u-+ zjB8L64IztuO$q(<$}1p=)?98ei%zSM0v^y zFp~|)9#JImlx(_8U@%EBCtK1z7(r3{$2+qQt^{=hr=3i!hrBauBqb11;_wJZ;VU;e zHE=T6oCLsS2;%*d{iTlGW+=DAcjhnLLR1J?8o3JQ%fS}ruY$5!4D_kxAlbgB{Yxtb zGFba~FU9x$c^k9ITeC-pZGLn7craw2h8z9@0qy;#Or_x%Dk+FQm=@k7#o}`+#HBw; ze$vcSRQJ8?#DM!Czp~}4B}QG|M4Y4`teB0yKlvku(hHK_F`i6$h^iAwZz6i)Vyizws&SBPoeUm$~$qMZA$61Ipn zV*FQ-oJ0V1;0!0QuTnUf$^Xe=&j1k?X8 z0%D9ki6n-6k>UTQtD9%8hqA7bB_b$;(hqtUWC^=1R>|=M80~QZE|fhJ9}?)06e}33 zI2Qe!$3P?%BmUT>)JL20bhqzpy+;y%40ZVeZ_WI(^LqNp%aW`7dl9?(B&Ij2F*>4~ zWvTz$JCi7tp=60bVNSjPKz&PQQ&q>(i;H#A0vtHPIQvBtNDZX5BDcn&+SPiuZ$mS$ znIFI{{)cym9+lG!v;~wlTh7u~mFwpTIWz!o`Es+fDdrDm*UIPA2XFAaE8PKgW7ga+ z;h@geo7!giHnYx;OUGKOzHyN+@#FE?oL=CI4~OGw9?67(;+Wj03@i)RAk#uwT@4xm4FbAx=O>^E>sO?TQH(SUDHi}^(UsT^_x z$~9mJM6BC};rMT#cmyJKR3^8MufrPF%SvoI7!&lN7@A<;kZL290x~> z<`(P3mimrgC>$OD2`INfBjAC$N&(cl?GX@Bsm2_26DN&~smc#~kR)F0@JY5Z5s*2; z*w1?$<_u6Q3Cw*6o^CwvA;5{RQr}pZha82_gNt!XpFsGo;BPIjJ;IA=34S0ZZ*S}*5 z{$FF-)FJ{9mqo+U8Hf|8qhpKB@|dV-F8hPAdP!_-{({dMLyz)l5h0={NsKw;N)i{K z$0zy;#il2mOBO#4WaKL##N+b3l5>jlAeE(pP(^M`8obrm+sd-T#=O(y?_ux&FhF?_ z8pd|REr67O6iWTZrEV!r@=>jn)w*}e^PdoxBGcX;T)imxPXLF0WBliGZck?De=cXo z9vxXy@|XaG!G*EZQlPn_RKhrH>HKlBnTHPDrRL@74OQ_Y`a}j8Wke<-RCqB+3DOyv z3`IwQ(D=|yJ?D711Y!r0#~G0c!n0##6%~Sw;J!#0&MpBuT>mT$8c<&N_dh)I&wt1POmM};dJ49b3Of*mf~!{^L@Ur4 z=`*AYcoEyNmy)Pue`J1rQb&{#2q z96}K;2FhZ1a1vQAWMVw2(kKtwDCZ1qY`d;?wcGs~3wnE-tU+Vp{rNveZ;wSB+PZ7% z4$#&;T&1~JP?D5BK}(@wj4GHq_-+7p9Dv>}NVIkCC2k}B!-%yU3q7VO0 z=6{`j2AL)bR$DYU?9ZfBnh=zF{VpxS;gx3%)ti~3d7}1;;Ae(jzk9O;-2)@de(0db z2$wtQL^>r0kF^e$a;C>w5+mu`^BEqr1FeL}Vk!l)olW&nNZZ2}di5=rEZR-}nL=ne z|N3_X;r}e>zwyThqB}tGhrJzt%!e_ga*SL*^rr)1ar|;xC79iyEdwUaMlfN)QlK!| zB{?}h5!`{pWM^Rz(J^p{Sp_o+4$wO*X9Q1zmXqu+Vp>f^xX3EH7o&KD^{h=Su5~;1 z{5yTnp2focId78xao%q2Z7Je;>%V`ZkNox?7x*)y<%Q0sG9UCS+&{N~>-P9@_$)vs zxWP%jV&ItugM!ISfc5Js9!gxXX58%$OeDvS72n5$be}K1yKUsBucueCk;17wO zTucMWTmh^olC*~vg9yr*>j_98n7MSgu{GP0Wl?GL_dun#i3TFjU&a0Ws}cV>Yum>h zAG;RxGis+j!!F>VsNJAP6`3dTGT3$T@~oUcrAZi^L=Y(E?2-ryiNuBBFqxPP7$_Mg zKo3Ek1tCsR03_BC2I28SJ9uz@Crrhp6Wt0eQP5d;wCK8Sc%$dWztaZIf$YC?5ci*R z(BaLXs>Tfr=~!C9Kzf?BMl7r{4fv>%wYPX;%jq-1F0L|3d;wvpFB2_>phVDPL*0{r zsFTnL6d^JPcoH531#@Xck*Op%(G3?31(pbb45BJ{$~)gv6fAJV;FJ*FhA1U2212g! z5FFNM{?Fcm@PviX-l_xk{mf>Q|L(B*i6OM4kbgPB3u!!n3d4b2JGY(SrS?Eh@U?Hd zqFd{h-_n^so#3OxV}qFqiD%{b1b>aay1ud5ZiPY$L_>Qv3J$SuKAeTrMZ)idqdz}@V^+(%<1i_EKwTPqM7JNv6kNgNM4urwcfEXovl**6=e+Wd< z5SSoc&LAMgQ?9dzL9^f%vAtSesyfar75T_fR(GvA1ROH5#LRTUQL#XLqPUdwx@4k! zjdg|C9VI=Y?l~CK#FhhqsN2C?c*YR(z_F9F``T>doVv3QTZxzyYS8!)rap6cW)mQJQ&gcULo|*otv)ubqbt zJm#9D$DIPH`4Vrqj`p3i`K^ZVz4l(Mp0VNV+f$|2vguE-H3IP-uMP!AefeWV%s4kZ zvd@M~D0&*oIJ6K#=0aDpnV6EG0s)lbD;sv$;M)9gIDJDQ#olG+@)`>x=UP*Yu7NDz z;5|b{B?ddzZRrU@qVpU$=!H2i_4@0rk^M=%@I3ChAsY@LKy~_T*DjR0Er7BDa15Q|xNJOWy2U;~1vQ|LRANig3F2 zR7J$+v0UKycbm`In}8@K<0zrYOD9ose7!3B%`B%TQ(knlHqX*gv98>7cB2NsENwRI z^Wkc0sLA|Yv9?mW^udAzBh?mwO2_bFzSLVXqhcX%FG`-t{Spt<<(#tJbg_$yC> z>3@HePH&&a|M^i;!2oE~<0>r@P;FssfI(m=G!Azi-gub@nYYK61I6@k>Ein?t|TWq z1b}1uOT|MNtYl{a*EBjjF`Gq{63`P%O38~aya4V@O(zqJbKM#)=)=uz4qxuDvb^T= z>-0%&Cjd*(IDW+_zkg!Xlj%SmqCEX6%>Z)rDNg67>hRNf;Fz*KnUorCV6Q4aAUWeh z-CtBQ#Pc*W-loG;KL{azOy5%|AyMyys2NY;yK|Th^}u?ArD=Nd_H(c_3^1_;d21#1i%oEp~dN-T06R)L~-hpb`Ko7KNLK zot@gaT<7Fm`zUZD_0aw3TOWg>r+#bwpc-&C&igb|%|)K+7N6mAE+RHF&pI(8>{vJx za{drM&%RJqSyNqC+fd)s*jyzHWQPO@U+iqTcJ+E!&85N+QGpV7>WM)Q5$f3Z#O>|l zKQlX%+&-*27$85l^5Eg4NqL}fc%E}CH4PA7g(^m4VeNhaid$d4&OGk(d+t~oalb$O z9n=64i{Y2lGS03XNW@B*rW*&j8YEK(Cw<|-;!qMR-#S4pOY@w1GAN>nm*dC znk}EdYmiMG+Pt#z50nWh90U3vPCw>Uwmi6z=XEl?6TQf}2Jp&~%)8pw`jJ~ocFj^H zU43JC#UMsy$J2>o6$+!R>-6%l$hWU&!39?AT!YQUgB6_1zOC#XBO<+nS7I@Evhrw4 z*_Ssf7-wz;(PJU&OZ8GXm(1N^=|3r?2P;0Wuiw60A8OHi9x>xTK6g0-z{q44ZrF8|b#GBYGK|Nr zcsLH?fJ~6H$v<0;LNjXfC|SNQUfIf_spe>3#QXQyfGr#@I*1gJ>#V{uqjF zEDslMOO7wXP^Xy%nx>nzB`{?xW{JPHIx|N+9jGhzDcJKoO4S2%BFQwI%)-<=&}u+( zjfXC_|GNksmaW9-N5@M;F^ZpU7%K>*r_vq7ELXixT4!?TK63F~oC~tHmM{FRVQsqg zT;(t7d{gLM4SA;N5cdg<9|p@nx)cM8Fz)ibEU2Z!|#b?XMoAC5|O#1awSg5C`=2=$-sh6u? z49#NU!RN)^-7(VnT{m@HX*w3}dhqqT7H2!EZ|83L7{sba1+a&ZFrUULV#JL7==4mR zn*Um6XjcJM{E~rh2!Zgx&6dNLoKKDOcjZTp=(XB&90a~M1-vgYdL%buY)-HOgYz8z&HM9QEbvpOBh+zAS@bbY61PN1o z+xh6__a%ILH;zegQ@2in*H5kK8LEP z)J0F!##|YW+PkyM8-VFZi5Jj}i4R`JpFFk>aIG4j7a=kMrCq`cj%+^aw!F? zW8CR)adqakfUWnq!e2r8)$Y(oebLmlK~L8*UM_d=F|5d4cc)+ANlNIZl%CTq@tk~^ zWo9GVsV}#9$KzVH%a4hkyaJ^>xgHwTz-aB8x_d~Y z+(u_yY5w$(jNjIp|L~3Av`0f=TP_N7Dx-}n_`PiU! za}{euSfN1do>%sxzd+mFQ-n-V0I)B{YXO7=HAL#~2 zJEl1fzA%b=kjx@8*1AyjZ2`#U_&MJVbQWI4QZYSo^j6{3u3CLruj~ZJvvVz|efDh! zsVM&aA~z+C_E*0%aMg@*nzIlB8~+@0g)l9)~mrFL71*Pl^?t10G9S^7Lw9`6OuI{h# z?F^qlJo;-S<$jOP2lpc|>6q*=2F&J@Q}MA0)68I=wjWO4_2pQTa;&twN9ej5!S+0# z-c`Bn>_-V5yY##PnI~gD4|CDo|HQ#AzN6)_*psq&|LJReGPBkW71?$wO-L5k?F}I? zN~KYEtQQ@(Bid%yZz#R~?uTH&=a~D8C&#cUlW})C#IpfGJ3EicPBxnF`!s)@1xwyg zJ+^ImYPVG2H4m*LTnieo;|6RbX8K`+bb^6O>+UFr1n$H`<+1`aodI?#qNXdhd8Qf9YH zbg>yzN3;BOV z@U3~s@tRR;tLI#42Yorkq0YP4|EkRu=kC`!LOb|ZEz501`Eq371dpIez`_Z+=`W7 z%oBTY5*A94Ai_PIXUh_b@XgOH-YYrl8I(0oPr0nvE)#r+85Z^B93IAb17sUhzrXay zPoiLeHIg@2*qLIq4huhC*l{|MGPlt*zjeB{_uGeMSSs5+)v;wq{GaFMzK(3V{U`h7 z6#Rd{u9V(Dy;xtlvY^jbx9}gcfA!pI;EPMUSA}@EmAzb(LMlI=x22(#bQkNf& zRX*7`XS~ESLjkmCVfHcXkKWwBOT$Q`s5u=u_>y}}7Cki+D{C^r zP_p>$RKlbgqH6~C+nJs@HvT!Q-0T*sGxZNDlXIj1$pZF~Ai_>?)Xs4qkzm`+IX+6H zP(Zv=z#WD4oIx(m9$+F#m@iBX`9XtXc6$Sr3{n!cPsKC~CM#^rqPC{wuF9?8B`Q+# z7(`2SdC>0E4KPoO0cFJP{z9u-hNnjrn3+yJ!4p!v!yEF`TAI_ky1=cGuC$etAk8kl z!!O;aZONT(eYw)mLk7+^r%xsU2~pJVCmI+vw3UIbX3@}~=miyna`kVsL=%PyYIM;n zJA>m@sbhl~Es*m)h`Rr&KmQHKyGA_ zpJv(po=Mcp*747pdvi$B!r*9r$kLRh1PY=KvX<$IjqJrKo3dB2#X~}1enY&bKzQ?7 zq)836eh^ss=h(9SnADuq?~P3amH)vNy#h7@*ZBjz1~~|&!gvZE=vO4W!oED4!h=%Z zs0WT-EdeKwd9D!jdYp^>@GIwW$n-2u@Zh(?*stRQg2TtS$0FkcVooHV;e@69EJzal z%;yWUGt%;WGYg7K&i^N#s#4hsFJHMjZ!3h`>mu|jMjMa0tlFPwy(GWW-l^J{xK$%3 z6MAsHuuh)X^XOuq8+1lIt9b54R-hdh`o=~mFU#IB;1ulW+X2iNn9`b_82Bs0&Re%{ z(Zm!F4FoE+uj2gU+Tw`S78iz7JOtR4Uy-v>!MDxBty>7o-opk@F(e|4JVg9?thth`p+Teps$@ zTOpmV76_@7I|!-xA!pi7Zs_Z&S;q+)5m}5z@8TEb zQ*wPuOd!s}Vj-poRBBb13#G=IoaC!^r5bz}|meL=`cQ2@^W9Z# z`n*y#ogq(KMP4J0G9ofLdgLq*UH1nRsmxy+;#CmE=r>>hOd!N5c+iJ$rqdKz!yR!l?1hOwicNMg*r(6 zH7vQ*=t@B&<{(6Jo2*f5mRSxv-BniJ^71ConW~1}97sOfaV}L|v*hvplb4a2c`q*u zp5oh+>qp87F)Ar>ycW@cHHP9xgvNOiUiCg7A{^Tdpk*LQ3@a|>{edz8UhU(%@OQ2Y z7tj|~9EwmZVyGHi$9?`k4j;|?-%|82@tQnF*&AadvHc}cNn^0Kfvj+*Zuu_IM*0-k z$oo+?jia}rMkg-);L^3;)MD~LP*heHY!Tx{ zYFNi$a(TB{q^>F1`H-1?c^*X^MA1ceAFCv=;~)y27IAajAc^kXZIFhL^mBE>Q@JiU b5;;R3jP;|$j#m#i)Wa@qu1}uot#J4^p9YPW5h9*_O zjtEkvT0q6Foap~~_I~z$-*cVASFV+0-s?BU9P=Jy>Kp2*s5**4p^kj&ZwV%DU~_koN*zvut|pXffbnXZ+kwx+qR z;z0!{$aqrp8w_p;fPnm;Px-S<0I^Rb`xwaMZjY4tje4mSO;-gN)!R4D)CG>e4Y{{S z3o<#FH?`3k^1!=mVW&ORtnuahuiar&?|$XJlq& z=j7()7Zeszi%Uw&$}1|Xs%vWN>KhtqP0cN>ciQf@cXW1j_w?SQ_w^494&5JSXgNOd zU~+2u;iJb-o<4g%^J4bp-2AJB#iiwy)z@q58=G6(Z{EIpzq9+{#f|a}no5Qe`HpzbjWm@G-^Obv2pTq*jiwPSYtD`~ zmyc&DIFIEUwp2XGQ}N%L8*Qna+AktTG6@;ARy`~=NRvG`)>{3z(!A8D!01lR(^}gW z&-t-Cwa*(#0|`RLZFMhN+#lDR8*i(BdDmxUtibqg!+clJ$F2GCyNwI?$WUfslXlwD zKpdys`HA+Xm0^mwaiK{^^Xu{KBbQ!HbhNBbQMD6=O*>mRA6Hq{o`2AJXZtzLdA!iH ztL^Q}cK_{H54!HYU!X@aiwabK4B$E>6!b= zEtR#Zm1OnL8!NYo2$@xi4v)ubih)%1YO2Z6&DAt>J(<_(R@NS`Gi=?eUuT{T+1)wxT zVwzsozE-o{(EWL9yOEBNdqW%K*{+46r0QT0MeY8(&Npq_-d!l-4!MC{o^n}?byXIGAQVagSn4uUUr)@coR1Qe zPkoaPV}@u}a7Y|y0aL9Lhy!GK@+EM_I*kl#H%i(SM!@7Xho4E%c1J=9Cgh{2#gN0} zK?HIwbZ+8!I812;1RDq!OFxu-{(M#+%vhegHOa5O)gOcg*}0 ze(&k!pX!>A7s%>;6QnNRZ5Ru=^vHn6-QA-qm*j+w38=lCH=VyW-lH&|wl#kY7Yx-1 zUyRH<{N-4vbfMl-67t>Gm7DruUst1yy;YYxvD4(I$_L+>uJo9DX@Za$)VGb?k6Ppw zHuAyJjq7(`?SE^4kFc(6-MP>^zTKXCS@X@2N0Tg@?O2K&$dr8o+-i9l*8S;@dD8Yc zpmbYqx65X-^Zi}hlQN&R+)sMEn~z*LzTT9r(aXNZ*4UMB|4QUf`Q=l@F!r^RCr>7H z=M{c;S)CFOM@GQTsNft-w?XXBC=|az{~5yj5DNoGPZae? zNFNgfWlM)($pBKF9^4^Id`N7fdnrxFspdz(ENyUZLpvaf1aNZE$ah?KFXi!-@FvD3 zh!^ftn2ZD;w0%<6mcfufI4u)4(Fx4kQ0|=w$XrmHO35Q!mWiv>-D#t7{3D7T zb+&9e5N&y0JgdZ9k}pIx2iA=R)d%}U{NbZURv)tO{)|!_pqq?*V#{?UN(f3inw)iO z;e5%ZeN5=Fj!$l1GRKCE%#d|=MoohdX`vnVcD^2HM> z%~NkVckPWdVMi4><;Kngr90h?BbyH>rNp@Jl)*}>Dr4MxKkqF!?f=K9Cqg-K>5z5YMdi*uz-u0HvRCP zf+;Iv<%NWa5ewBqtl`qc_8E}){NoGd2v=PUR8iUbXg5cFy!$1`1t#?1Q81<5j{vl9 z$(A=9ZjK4gezrkv>CuXy?XA{{t8c>|c|K^>0uDS3h_mkx;>h;IuHm_MfQLBEmZo!c zA~+ztLO8tbl>3{H6*a&R>CTbEE;QL%}&@S`j-Op(u-GZ zfO^6^;q9n5vqQ;~CnBYvkHyjwj-f}C8~uJzCAx@gqJbN$7m0UNBwxTbi~}0MyAtDYWYd5MOmypiV7SC z^3mC!w>k-Dch9Tay*Spbc+ZdGyVKV0=-&F3wHLA*5>IzN>B)7io6GM!_g zo<^qbxi;dCf4lDwWTubWzLp799d@+d{Y-h22}Vt@z7$%6plItFAHPk7u_{rK2R5`g zzfZ@UC&%B&=&RxI^@>XlD3LVXG<5hrHIP7rwkO!hqWo<~rXSr^eYk=SB#P@^kRwn2>|r zVMhgmgu*?Isk7|uZFidL-+KA~c=?j`?%kpJw|j*)I|YlpM%NEsYtVikI)A}2{_f~hP_s~!>taW5D|6zrr*%Js6wkE`dFciY z$Zay8C;j3D+{{#RUjubmw!S6tWBu7(xQjB~iV%^X<6&=o2J7KY6C%8j{(@qkPiuS- zG2sY^{MZ%A?qjx`_alzTvGPTV9%tp?iAwS}dzCI-x~}4_Fr7x;{{SBE8)k25c;vr# zrK@{})%JONLzP)n!7=f-5{Gu4Whs1$wdrf?L6E(rr(LDwZYOddCx%V8pT8o>@#ggvw(wupyjSlU#072ijr|sk@I7HV%w*c4;Vz7nbyJIYeQB8Yie8u-)q>dowP|x>e>)Zh8M)dXc-q(} zpyNY;4lVdrvBK0b#3@(P@@qyf^wGRQu&iSdS2E=WD#*#ZZo)x`nlslM&x8*Fpkp;%3>uInC)dIl;tO!-b%Rz^(v$675$r-_;zRYowC#zrcH z?_Z2boIV-R9y+JY51}gDL?M#1(Z4G(?q5-H28d91e(%ADL3Dv@NLUx{Bt9Y}<|-uFm?xDUHolalrxpd= z+5;R%tZAswc$LIJ8~Ae+4o0-eumD(T0EQg>S{uMp!uyWIrUS_%=JDpXx2_wQR)Yo# ztw-PrDST0Khg%QvAa6rlRX%2;R}Fm0*Kp`XU=tzR^9UH9v0S!|lN&{gynwBJ#X&Zm z+d1X7vs!;`8qB%{%^y*OAa zGF>EsGE7ewevu}-PC3AF3$1!9YbO=`HEsV;Nrtgurt4+~u#@h{pKp2PKR(2FM`J2ec>UwU63YR5Ry% z6BeaFXqzZWJSc{T@zKGqc(^n*|0<9ZB9rs+FwoDR7i$jT_sKu+1G)PxzbA+J-llM0 zJOqKKplEqe>_M0GLYuFd+*rt3M?RncKso?kI)GLH{kPg93AA-`Uf;#{^wiKAomnX}J$zV%ujS2x8$WDT^EQ2buholuiS#uDxW6MVZ3FN$(*@D}hWq?9; zyB&m`S}+<6LdalbuG(c;Ai}6BE2Qd<2Pj6D79fK2hDi4<=3xF38K1mr?SfU+LYK1I zeR-oinJti?RDFdBa(A@Evb=gY7$TwoF`(8-%fbY35Ij(&HC;0tUoiV3UxHZBh^vw! z)oGLK9?4dUjTQSW1}qX?41z^u#>)CVfcBb__qawaY-5BPWcyn#0t?}%gRDD^tmHD| z&f+FR+H_4my|YrALIcQk$m`(G8k!Eh@i!9?uUzc_dFXZgd8PC*kYxu@GH!v^<~O~lc8LN-d_cMS|04+!>?QNKk9M)0szS$|DOjt{CYJ<&;8b5EX}d zc6yzg0}R*Ia$>xGe6;0xZUM5ZUT&wRp&H~~Y%gT$&{b=9NWAOkbNv`abtZAB;jb8>MX6{dr`z}L7FklJ+VcS2+9&6nCUJrS+Ms<^<;cO zVkb3Hw)?@4ZjR}K@va`T&Za9q)^m81_bR9u&uR-wuMNG|nBMy?5!N76sjC18P{6c) zaLa)^R<4;;qby}!VDqx!Gjll#Tlv8XB2NM_XUo|fX#2Mv@=oNb2`H3hKLTYtAv~lK zHG!&d7f=Lf)uPhVo2#_V`_f9lBDvlx=5q7vrv-F3Hg9qMuYm~XtARJ6BYQBF}Q~t!Vrga6y%tu2lrl9U8h>q zR)?LoM5}ZoE+)Y|@?q^vl$C_S8)N;KiraEK?}^wOKc}B+G)9VI4@r;*KB0A|>>D8- z#ZiLBpX@;4MPLdyf>IbU*&4niIEvjF?o%s*5%a>mM#2*zOxPlmS>UA_OntlA-xtC| zg7?MLgpe2k`a@l)uYGPCWr%eZzP zVq2*_%=9~0n$Np!f5I**qmK+sLj6LDVrQvWKD0!k^`o@Fn_BC3SrB%l(KOHZEY!B}59=3yl&56ut0JOCNK31Z}>^q-# zmz~6bz{@cWX2{9e+aGi$_D^=TR8KtJ-+F3es&}dT*`@92EcH^y`6A^L%})~Y^Ew}X z3{U2%R%V+9$U-v_CuX9~&BWZ8i7S{%=$T2HpGgvukqTBZDnPl()kh_a85_5-3PP|n zx-_h-_Ly6+4HhvIXTmO z%&_+9cqeSy^Z5O_Je%29ywmrt-4NxDdIlU{ zgq>eRge{^97nyn&F|QW)S>G)#SUgR^mq^ijq|a4C#sLhT#$sH~O$98N@`_m&8dR%r zlS`84mn>?g9p)-!4}!dtwA{`r{6UbWN`KJ z+pV7k6s!{RexEqwvo)5j%>-Q>x)3^ep>F8i5D@x%2tj=ktg+#hKV(_{{95lu(yNW+ z-y0O+%~Xxe^z)mUVVl{7o4LK4`L8w$e{WKSw@Ng&%Fb_9gl$z7Zq@W|)xFwk_`O9F z-fq^|Zau%<7Pc+kUbx-ayWRb2yZ84tUHDDE#+$+OZ|;Y^87X`-*866{OiuG3-w?^L z4CQ@5XOI&R0s#07o&>mf6s}@rpj#E1gRSpXVTX@Adp$465kp35OF%eyc4Gi6c?_4P zgW@V_kU_HtkuHNU7W!VY>BJF<>90IU&o;=AQa+eWUKtNq+4Dc)D1QxL0kPr0F>Ig@ zA@2n;acv8t(npAJ}4H+d|criOikZZ!&U>v?E`(%a&8%mJ|c4pNso7iKm*-j zY;1b7GImTDb?%VUjpnGoCMgo&0_45HQy@2Rn6cRX#Q+n=VlOI`)V+Xtu1o}6*4CaD zwu%aSPFfElSU5i7ZMi!-~ zN~u7dv|_CKE(#srnCFLu0E}hl-NC>D)rFhYt`!eAJcz$khovSaLNa0NNMTF;S;isJi!Gf$yT zjHL0$JVpTAfc$w-9TW!+{m})FPcE?#3@@X2ZKsZY)ZvU0v`ofaImHofAPQkuWuoYl z`abRna|lC3wTLjlFpBD~W|tZhN5M++lxX37$b8+sQ96EDDBlCHG?%0VVZk6Su(Pvp zv1!PO`J)q05M3QFcyOFGW93v&ONVD((SXA};;+b^tAr*NW@(seI$;lU(IU%dr#Bfq_1i}}kgWpapM6l@?%41W+bop8M0(~D*OEHNe z;t4Q2YAM51Mr!_-tK1eq{Kr*Zi#pn$c&acsgsEKT|I1WPiTQVEF;uky2_PPj`(LU; z{##Wx?0>3y=YOiI`#)7}_}{9Y_?N0A4s_yyf2n%t->M$`PgM{8RaF7_x2h5_hOG3z zvdWjJk27SQ5}WAs5ockaf?k=Knw@=7HzM(mtZOgMZT^*2{;#ZG*1mlI!I1R?vlMLP zaJW{VAcAd~FOF!SD^4e|p#3{`*rH>=DNQ=Fz) zKNA(jb_sT!Xq3(>fhZh4l#C2A2t-ApKz2ZaJ;Lcls*+Ar6rl;r4GD)1(oGE{Vh@p< z1QjaKdg9Y0KApdcngDWQSI}}APUmAJ;2ib;| z2BIZMcp}sG-1fWo=+HzlW=>Frlk1zx_aDc;pg5j9bRJLZi)eFFcgOmSqbxBT28;%X z7&KM_X7X|*CRa%=_pA@v&_d^*q-My-W%7$aAD{u|0gTQMJ=@%XqbHdrZt=}XwqRVE zb2i_;e5R@`_qBKR;D}hplyRo&VAK3G(Rw{l7au(PF&U|8{;t5R`v)e#nO) zIe$7ozG7rCad8QWrk3W`yKNnJy4t%td+7K2dk6c52JVlJj1NB;4O0-y62;1Ka3VQ5 zSWw&*wOYdRg1ifh>xX$8HvV*euGQZ}q)W;p!EfKcBL$g1)u@w4z7(^lTZ#YfR$+90 zw5=cj|Dd=}(NLnGlv~Y6xGtGZT-ZKU+VoH7XW=V49tn+3RQMvK0Pa}mvhZq^eXa7n z9lMX<7eoE+{6Li6N+h`*EPq`2-ue~4k66Xi8$zBIoxzSoOo52q7C#Mg;iwl^vk;Zc za{1+*%jnb{wOAL+s-TZ0srIq56Hr;Kya5I1OUU9qK3A@Sm7Z@r&YXPW;q55$uy(Ge zFb8A+qy!jj37LN9xS&>eAdK1(M32GnTs+t?zu#uWc>;q`BV<{X!A?dc5%o*2@65mgCO*n9?(AS;v;MNZe+_2HVDYmxcc)^UC$%+_F?R(rR4IibHAX$vS_KGNyV~@ps0~Yg|?MN#cjmF<%hzNU;th} zE0|Ed1d2b28_xF0zP46$`j?{%275m^KEtbDvr_m%FT0d%XfG&9O)p##xBc$rfi6jF zPmv7E_OeMX4cZFUFY`{f+pMYi8s`)xmCZC9aVb!3FoL7v(OE!{Y1cg#vOL07J6O2v zS*&Hf%pbWIoZEkq-y7~wQua9kU88Mc|EBGFyM2a+pEuJ*AD+EPdURCsg#{`+twYJi5Y7$;I-}|Uy{6aN^`BHr! zpPaON7*x4^I23kEHn!uJk^1fsa1ev+=D#Zl&A`X*EeN95wckZ!v*zB6n%2mBBsX`S zmB~0vtz}cKaI0oBP)=2^ycbAguAYLe5n88phQ0iRvP1G+CQn`IDI3UX)mM%qUYJ*W zsC%tj>7IV4P;;G`2zpOQK#+1pYB}YL%dDsKL?A|4zpDT2Yhj+e7TpP>yc@ZFyx`1Yk?SZ2<74U(=}l}#hdY$Se49w ze`CpR4EwfSdz&bb##~&#H^e%XlRFKSQd~H0xASOg1Qh;d>w5B(CiyzA@41g(rF-DH zFaX;+vx!hCffSC&Ven+A?KCjm(ucu+ftY@R#PuJGF<$7#Wg3ajG;cH-=$u;HybBO(jOhwoBin~iPp2=;01 zJ^4{_=H@u)ygL(AG3Ry?eZ@|!z2KlTVe~}4Us#>QX)voCyn@1mCH`cnlU?i9##^CZ zsth|ir*P@p5JW-&xT@~K4!^&s3=%a7r$z5PtV_*B;_@#jF6U;odn;fJ0Fc!m=s^?l z$o3q5vYn~I6QaN^AE(~_Gy(bT8C%6={@ z9psBj83{3kdlEzzx$}=Cip%d$Yd_EgRq}IrQ^w958tzZCW|I`1SGbBpQT55^b5pZ_ zUu|%HioT*Q9`W^|qo$O?8`LiCg!V4?A>SKbMhBIJIf7!FvI-0rjtYq54c(iDcWd3R zD?K}Qi&URQuX7w$<<5fP#UEm1*4*Tt%r0LoPUiz$t7XmP&k#{oeH#~xIqa7+-RsUU z5#5gX*p3N3_scH_0D*+rw2^0>(wh6W8V^2O>%LusoF5W!`m`x`JN16kMgd14T+wcI zt627c?d3r{^5r9|WA`wkI9C$|@}qafs@8h-PprBB(i-2VB5?VDgZfwrK;4xoV;lwojt(y%fQ0Q zgnVAW5?E}d=dAB^%k^kJmHH_Us}9mjo5mpy;>oU;Z?Q64R2Gs|o#Adad_$Y3PF;bR zyYPgg=gG1-VKRBQvpRx#=cw<1Fr)*do<)ECv9K=;0vuEzUHv8e zUGKY!VMTx&`W@VKsL1YXde6@U02SFw?3VrSqE42>^0U(MJl-$A_{QPW@d@;>&VpaDfiHiJ+$8%QH#-)Tb?qFe zxc-@xpZalp;l-d#aYygvcLTfv-5)AW-UzXM=NZQ91~$fOHalIoe0HUL*`G`WQ9J8t z>Rq?Gkw`%SEg{v$hYNcZP#E*d#WXI}Zy~l}7eac->$5JezAx7Fa+Arni8_G&eGSRh zlaV>arao}XasELtRh#oWX0=vnr5-riWN@=`Df;Vs}3c#uy`;cJ8< zpBk2|;;TSjr`?oPL2?pc?afN{f!NIG$XX!$xGnMoA9Rh!jB^!N@-fPsFWO?n{lb~^ z`tHaRUuAVI&{o`{^PHkQq-d7nNSi7SX%+5hr(ijY(`T%7#h=Gq*@(HEZB=y*t7jYI zONm~y#&Swv4@4iCduSsO7rT8e<| zVV}c2{))MmdhuC-_UIc+qK{8IC0LwJqv0*rxY7*boS!J`Te5~$#Hox(TyZ*JtjpH! zYIbKW5eZFNfQ3O&=iu%dVr9tm*K)Iah(Q&{x2WVELb9!U{PRHePy^S}D)}Rt)&#hM z*0P%qck<`#*cjVzFb<-YiJaVsM3O8iQlczbknoYjk!zHdnS^hrdA@JNXH#r62w8;lf zIcD079EFn8e^)^)Y;%xN*|v6Bfp+nN@w^4l6WyX`_u6yZW^&BK19~!ZC9-nsRQ(Qp z!zKqu8KPJpX9^p2B($jNLWb89uu zY*;4wL9p0}k}qFNKKo2QJcupCGOzYSz8ZhQ*+@X1q~5}J=y6B-s@=hlFft+M@a*VK zPIn~*_83p`!iz5ouTbKec9Re-h3%t7R@Q{`{>mS#!whZ1H~Fc#9$6;{N&9}HIc{Rq zK|`u;%b|CNvvSg?Gs9t1k*B$f`JR;)-F{IhOgppycs;Z!i8RP9@5mhd$k7!fc7>8` zJ}N7m8>$;6nzoYl>T}vlr;=uL(v;D1CVk6#@v-1Et9`cMeexkgIsY_O@6IBhEeZ#TpM{&J%2qzeGvv)(yoYT1tZwl|tuneH^$F?b zY$+tSv-%KI>9u%CX+Y$efJufEqW;u@CK8dmKa z=5eUpb)4#!-UkJyci$U!aE%|BP?{rxza=f7sWpD@Z2URfXt-l-aIDTE0Hm4I5Z7s_ zJQ`CM4fB%5`h$iQXyQ2D#Fa?n-3j2!Yr=Ik3BGIsu&}>AllmY3?Je*CC zq)u(Ls6Oz%@cdnSD7xt7``$sZ`1e12(JY}iqpqPjBcl_%W8)KVd&W`H+;634Ib~+& zIppRS*``uUPZgF`>Qz+LYSz>>syEPDjy1QowB2p&=&bGTsk}!o?H?!_x}P^Pnl;Xt z-dXBjh7$6WFq8dvVjYH( za_KkDes_vDl#}Xx>a`CAMiSvu!%B`fv3IyvyqhtQ~ofhdgwFaDD$BN?rxI)PLuv zSVd`&Z_WMW6|H2GtOKrcvAh@cx;uO>_7&~NNV$?9xSK=82z=%qes@4nOo3#&_DOoC zi9cP~Igj%V0x6+@rN6wRG=t)RQD|yuyB9}5Eb7&q@q5#U5W!KwOW?=ew;eue313K`}+`%wVo zPFEooop0ln5@OX+n<_$2xM?RL)73O%^Kdd+jt~qH&w5y6hv*k+b~^T)EGrd&lFs`U zSF+y8-AW*x%`|MfZy)Q`{OZ8?o8U=}M1B@Ut4nWX?##H=9>DMiZoj>|81o;~i+_g~ z-*xSD8WX!0jV}Gm=u!VO;(HQ=fFQsN01#Nz?P}}4VI=@CJpBLq2NYq@H1}Kb-_9-u zkXK_o!~EwN#6`wfu!;mWZiEOJS}Dd(O5?wmDOQU@oE)qz%-w4`N zHbVkR?gZB@JU>B5&E^IdAv`EVTbShvo=03e&^Sy4g_h-wh2MsH=;77?94M=e*@S&0{2y6I$wL53u2fRGs z7L9?GC`!bl;-Wyx9y!-EU6Xd%dcY{1qHlzI$+E5I)e~oT^z=dtg)1N-Oef{?3ryd+0@sFR&1+W70 zhZyU@|6R|&N369V;HVcX6s-J&y2^^NbjsKqb*I_Ud0sp{+rLbB&ODi{4I6}81$Tod?bjJf@q1#B}Ge|iNJ9~1^7h*`9VQ{0WJ{<0Llu=^5&JB zi{dM^AQ581c!t9dNP}X4B-e%32y@|qZk=<2AwXOBJsnXhD2Wu(zp5P})zdlFWZqAh zJwG`ujihTYgCn>xVHOG3%kxvo<4>D-#OIRR&`sQ4*+;IPX}Ce8Eb3IB8bmY*Ov{mD z;Arda1VyUO9jF@&HL=dZjbJiorQx8&a1mFoJQN>&(G{oU{bVtq-%mOfS*US~i}0_^ z&IPal@)8Vfj{XmAMpjdZ=4wUe&UkFS{cX#25~)2T*3NZv`diq*C`b7bg$oZyd|zCS zK7x%KGk+k3=Q*bX4MXwjMFz#_Vz9vwz)=`)X-PQe%*Kzj6p^?L2=J%7gi}i_%d}F{ zK|zT;;9q380M1ApHWk(mk{qXt|9hoIz#Sw9ci4Hwno2h2SeB*Jt?^5#4E|L;~xS>^% zvqNGR2W|lpmpxxE_7B_?msrC^q?X25hR-rrX|^G(h)nW+{}2 zR1H2jl@eZfv{^5rgzSV;^Oh?uwvu)-c*Kkt3BIAfOg&Aq(^9ugA=BkKJF6^A_$fST zhW=Z*?E=6%GAC#yZ=hf*onhNvVXLs~E;b$qwf2pWllV|JYVCV@`3yJ-RF=1))HuY# zg&$Si4mF$B1@dnMINeJ&y?*qvTHBR88FTzUMllz_2FMFC-jUw_d`D$|G7{MA=_(~0 z%A|4T(p6PHR5NMQI$kxdf8(`^okr!tedT7BMz+^~qSGrDg+e2Ap=8Eex`|?r)QJuW z)y0q_^qqzAXU-515LXtiTpafW#+%AT3f+Rb=JH5sOIGFPYl%uDa|I=Qt^f7LYW_Qv zFGw+yMGhh^S0I0F?&wp#o2M%e5R_g|z87-qAmy{ssD43<2;VOK|tt z-XlV&K37B&EJOw6u{3jSahKsZuTkZabh`g#jhHU_ZD@&ThmOg0mDPoCb~>cW)<<(O zD;SDlY;(I}2#MiXj3Il#k8A>OAaih3u``ruj_$~eO@c-=;on=ucaSkCX^+%A>xqUf7uk4O0& zhd5;7!<%CLRpkwQB4(dIyPI?-{OZS-oBr8KH)yh}Pa4*<17w_~%FYm6yF*o-%$Jsj zGxfD3;;eMY5JcLQ2Nz^@fJj&px9G5HAeVbQH$p0Ikj!*+gcOP9F(+dGre!Vw3&`^` zFfjSw7{vd@AixL%tD32M)+vZ-U3{yoYH-6~sWsi$%ua9XYw9ieqSs%=Pv{WkFe)f0}6HNdrywCWp6-LA@oCEHAD4;xf37pzSD#XV-iIi*45>$R%9D=F_ z!ijiGD*-B*abAuRT>xleKF_;t(K6Yg#~>0w zC~vk}^mmyv!i5~%ZaoZME_s}eanW;xX`oJEzL zl+{m?b|~_?)UY@e6m~5PKB2o9t1ms`!O4HRt_#5NNZ3BS^=Nl>Jdb$?bpQk}V1J0( zyffOfQ7JTXq50u+$OA(?){;dmtKVziHpcV9SzP35l@GsVRo9D)(0z9%W-u57*uugQ zM@tMZgmbwAk=j9r$?5^Cj*eX1=c^n!_`Nrn9l3wqAe3O?T>qKMxfp!d{BJ%+)j3cP z7&nQ|ARtfc0)_KOZZo^3B(MUG_T2MqH01(F4fw*)n0scDA zsLt*NZ2_)25h))e>o`&zGBz=31C?Qv01Uox2#+O3%3n(F{8Jok^hR^FQDwmEFDDm} zgq+2Z?JEBG$IM_9Gamtf9e$gDWLl0w8SFahr_sf>BZVQHI3QeSYSM`WhI3M%2Ww^)WO$BS6?6{FuoZW(o0K{ zXMm%G-&G(|Kfty`KE+WQSh$U-3AaC+as|$M77fsSZ`^92TQwhZ868NksP zzy&gZYXWh++V}bfwC*>xXiM@pUCPn(WaR>p;;~b<54E6t9i3vff3aI&Q0KYLpl*Bc z-XH2djO=~+_7RYg&&E<&b*0$2L1rWf5g@EI=6PSG<+0_9Qw4&JD>JbCLHF>0h-tNHW1 z_WJgC8Ey+8D>#B9wrPLhWf z6a3ZPvkzhxC^Y%o{6||g^QA=8E19xEC`X)Lq-&n_NQ|<3yn5pRKDD6e#_5-iR5H6| z>@4VWZ0D|RBt@hs;=ltx)poU46GAr*nbs{}%wl!!ba2zBvU2fSJU1WxJQfkIP2vWu zwizh)3elyh+0F;4|C^zx>{)vt;2u(>72--b;(rev{2q^5Fu(CbeUPTp446N#N zfJmFu`*;^@{Y{b1D0dwBcTYq#oY?Q`0vOD~|*evnh6I;-4K=ix0$=7QWs7a)_!CCQ58&$BMxZ0#Gvp0a|#(F;Fi~ z$UGcxqs+}qui7|?_yXueF0-3PxNgkTrL`#Y%; zu{65|MdU zCx8=S-h?lE){Ni+UfU0fm;!_E_ zQA5gxwcXqn4CX^b!I%e=L%MNld#y}qsga9xKwvL$g~MY;>NocL4xfugRx zlUr^mTiDp0Yr7zpG4E=@_iZtis2licDKj+AE}aSXeNOZdQk!SgTuoMjLR2y98Dv~j z%qKm(Ex(31t!!x>{5n(A0xhZC<$-sL^Pqkl*NS%`3?i!F^uF6%L#pf84K9BUF}|;< zv&sh9nI=Vdfw9UW4bv7#3I1&{0OeL!*5kw|;PKL#F{#8dJrtb?`Ehz_v!dYsV@6G;I4u-^)8R$|q2iK{!Gy=nvtHqA&%Wq?>`t(v3@C6on~i ze~ZFI?cB1QQr)VAdO(!h5gK66C=mYw-bu(7mAh&msday(>xx!~{oe}l0gkHYB`9N0 zfIOR-1)g<+gIbdOosS{YBR~MIQh?vv>%VHoRZCw-I)W(@!K1EH1%rpYCa$t$wMx)X zsF@&e_dy;Ui4{KAmAxxknt(j0Sh^M-0p~zi_dm8codc+eX$2kG^(MyeduW(4b*QqC zwOO*`EJ~f74A96c8v%H69cQBL@r6-2wI^HFp5sK97Na|B@Dh7_&uOE<6iX%o5G2IG zn9gD5gPc9*_C;$PDl4n-C>OE_z+;d3T>fzh=E&TGl`}UnEnU&ms#{8Xqda?xW}Cqu zE%$}~nkI74*6k8c77ZX9epS16(0k+JH}^}M)Q^#cV!s0h-o4HV7*@ZsGO1gS!?U-% z$2MUzQ%%Qosx8itURFJ@vyV0rHlUc1aT$3G{hj87lJ{mj^XfxA7$`kAt__&MGh9^jOtDDSP)$hs^#nvMI3tskVk ziUD^WV^oqKuHc$s6SItuNK?eDu{}=L$7>3T@%kr*x3gfaoX(>>ZkFS42>06zkoN;V&h#4}9m}{K( zqapxtHJl{MkAqw{_VJ5IvLl;#YyGKowI##;WP2~|-1HD#Dyl>WgUyK55zQ+wWE3K4 z++Owhh1z!;EA!ADm`tE=Aiu<081LXfxah+$IUGbJZVT{_`xZWbA>=hW&L~qDca!Ob6oHfijTrn^0Gqq zg!weZ7?t0yH4PD@W;HH~e$nCjT=vwgI2^w@GROo|6_c3jj_ zTTWNJ>*GU3nyCb29l5gi`^FYZw?^{^bC$GSAr@|WVz@FC_Ay?YdZ@6$XaDMG6%B7{ z!^2LaOEr8NdKknb6h{tkCu!xe|EeM_LRb&_JaZn(DcL{kS8Q6@4}VZyv2ac&Dsuw) zAxCdQ!#ds^VpW87juP9O7_qsn0DnFo$DS$f-U8?V zExzP7exjVhH74&=g^oi|Cr^V_G$KT6(=nM*lKYt29jmcpg=c%>9@zVYl8F%MH_GNG z1x<3dke@q{{8~cpOj{^#ohY`7SS9_c8&NVxZn^YLmL}?;&jp}P&tSS(!}feuypkW- zTlF=oU-kt|lG$y{q3b`PLP)mG{N%@w4v^@?GEcVduU0#uxV=$45qN{RALj z%>OO6O#X>2Td#j&YmE_GQB&?8h}73o$Z9qj(?+NQ^0Wi`ZqggFBVU-CweuCm2{JLs zFc$b{d%5w?_L7p8p^M2yQ?(138QV*4{@?8-UArVt|4zMjQ(6b5Osf${ZPBf51Dv5j z4vc-q^-m!+L7k9fm{yMjf&J{m(ON#^5;OV>f{$mqIFa=2mpX`#Gl|06f^WUa;N4 zJ}JV@8+Bq)m(fh?Ec#=vkYN`L z=aW=rD$cy;f^*$x&Z~cv37>dKu$Vtia_(Fm$;`19p#6Abc=plB__IR$X$h^HsG^#V z7k_QLOY&qMJW6aAJ8=F`cGxYSU$Lj1PXn;LBELf&{YGRB#=&e~WfO(RGf11Wj`*2-@D*MuVtxU*_6OlWDvI%3YYZ;PJ?WV@_`;-rV2oHR}ELz-LGM>Bg@G z?nk%P44C=rO84yc*ZP~Im;o5fMR=C4`}anldy}Cr;yfAH5|K(XZZtl$wTr_((y+Mt zS9VucB(HC$uhb5^=pU_5{JOvFgD@c#8sGCouv7--7?jFs7RDtkrQJfXDb7;TQ2fVR zG1pduj$YE}As>d?O0C{P?3~lu4?y=}t=`tGfw z|5=R;V9S41Tz_L>27Mfr{~s(&xnO_LJww?Xp+N<`|H8uP$bu0XiUM1nlx7pLk^hB- zp=0pEW_VVVX=ciAEKC73+a&i8-cmOOf6c(vC@}WA6FwEnhJkf z`wQdt*RRzc6X`XXnzZRy229k*&&{$_-v_I=x7bHxF7^~*TT?5WQGVM}T=Sf4Vxr=m ztUP*|OTi%dUS6ziUvceirTayI=Um0{5EYB{3;SHZV!K2r*4g^$nc8)yJjbf!3+Rv5 zPN^Bz+N;>#e}h+dh&yyc-V@yNEHvapT3fw?%k%3~ zYmf(DPp|aF$A1*FO0l5M59G+-Gi*2x5LiD1wE@=l7zu%W#hRTvR(?dqFn2QNCY5aV3cD!>REZ^o0Gxo@XuqD{Kbv}!w->!D6 zel-AiTM^aD?Sp?WpuVn}kt<{0~E29Z0Kc?4cVfW_bcg~0ti0BfAC-HkG?E;8^-7CwwaBi1DifbU3 zd(C!kkGsWNCmG+%HPKT6-7dv$#MOe?*ieECKAB|7EnxZk zR?Wbw2m4U;&Y=ij-aU&37xrP)R-{}1Q$b$vfN+X{`okf6q#oj@yL2TQ<#>g60IdUlbkBF5|7j z-}UZ&F(e_$1i}MaU1IRoSS;ce})GaEW7_I8`^Dus!{NuAn{GY z%0gJ1h@;th+l=(%&Sm_&v%3IP_s-<4&kkVZm(uBPZ*NOWX)F2J_8^QpUBf;`*ImUYXkBj>txh|Dr!O{ zQRnWggo0xCem>F$^r6>rLe z$^(fvJP9NX4}ID*T&1m zEaNm1`z%Q_+rS;$xi;Qadb;tEmOWh6jTi*n8*L9ktmPfqvy+J?0F_rv-dGWW zm=Lnt?uU2OJtX#AfJuICJ_%3JfN)?x*h{UVI?7(j`j1G+)Sv z7W_bJ;#5;*2$l_nI!;dwKQ{yd?!W7P`sOk2FYD^2O3P#DB!5SH<>Oy*^n6+-u&V!itWq_uVPHz#TZfO%vnJ7i!O6dj_KwW;{0>KMFxpc*6Np z&-H=%9)Qz-@@+Rfd96=j=H(?KktPKX+R1~6_e)?_npYGYc!*{b80;<_LMa74zT64{ zw4zabnpgK#Dy+xvDU8Ovd9JdVNN~##4%O+vv0GA(SU-{x`|^?5K@+Ri%)FtOO1d*Q6HEZ-B8vsJLx0_6aF|eT4=S9_1KkAM@^4!#Y8Cx8 z8a~mS5bJ`6Dr?#mVx93!^ z(5wtB=tw2;($EC_dy^VQf*!0Lwt9Rexu8GkhL5ff@G+SNG)R&q`G7c6g#3OI1i#Yg zB^&g-y+&L6#D5Xu{6|MBWwGKXc*VG1V+ z#B?6(iQ-{XH6DrAb6Ol?(e&v73L#%Thxj z2+da9f7I2IZ!0^b#CPg(GQ6|>GvVIx{u(Y7PPQEm0KWl3_Mb zf$KI0FK4HC!*%ZfCD8i{cdrECgzrQBAKicQiNemi!OX~*;VBYciE@; zPhY>G&n9o?yUTX*g}p4`~k32|{vjGCy+l=v%f}X`1jhuzFbPbv&n$ zEE6!%BiRlsD$2?Q%s;>9=K2etJ zZEZatLL zTaxQw=THNS1bi}le1PhcfKXimY&TS3a5u_d~#h!%r!v|AXT z@%)VZR0s}lTQ_J7#=s~CH}OrP%*V>$3@?%GWaUy@RAe&u8$Gy@SUBl_7o#Mg;SUOf zq>alke=#bjc_ykF;vJLRt~cvAjcJnx-CyYYA7K(nR8<2alvxg_%HsFB_TwA&k@W@@ z*g-HQVU~h#T_KnmPZhTC2Wxqt2QmEtI`JhJkrD&Nx}g8WP3hS04AX-g)5F+BqI0w9 zp#SlrBDjbL*G$y(Vx@N(ER@SvX2E?!bB|tz7B&jqv;M+9R@Lr z74rqJrkg**P_`3L#+SOq%)ycgp(Z^f3p*}C$SqL=pGm&M!QsiC7)LdU7}y4`@eWX= z2EKc<GuY0fKgjb>C-+!!*-?o`7htD!0(EA+H(`x@&O-x`k(}4)CjrGq+)E`~jW6nM;Z^LqC%0_O*c~<@+ael-I(!8Wq*M(JYLd+PHnG{yzB6 zLy_1SVDr|fF_G5FHz>f~Jodkg$Y((es0Hw)f_#T)(r-4Xq2Vl^L*ek*pi7y$3Zkev z>T3nW!)AgQo1lOPcpH%vXbwN}(*y><=&8&ZC1Dum+N(qn|S8P>&rPqdkpslVyTLy|dYrnz^>*4+>0Kw-ZX{oXt45 zPd=-1W&mE0LJdljJ&=$ab55|3!S%E(f;;f@mz&9|*1c$Up>T%pjxfR1IZ;WpJT!q9 zhE~r_c7UxlLx?qB6rs3H%br8*W}pulF2ns5oAa&_-0Z@oW^nmz(0HkpcW2t{;Sypd zDMde9wM-8A{(_Y2TQ~MsG;Sg7s&o3hR9I=bN$;%nc0$%Omu|t$GG>3&IKOw*T>jkX zY~Wk@bCVoIfk~#{+TgZoxtEvQzBwgbXC*mgK-B0$$FY)>Fo1ABw_)5@dBxNK;zY*A z)SeTPgehSC{PhEaPYUBuVICMns+R|N-rZkVc#AV7S0qFP7m9XI;d5KDAPy;v#yT2r zbtXr(wHqTq6dDvsx4PtP-3En*-@4g9c>5;iDgf)o_IETh+QOdg_d&M%jPIDzsqq7tSSa{$1nPZ4 zrYm$(_wy$t0I4$)t-sK1Vso(tN5`9F&&?b)3GqyMceCvTNmBtezI6PxTT00~>);5w zKfdV^r+B_f8wK=M6Sy|nquGfc$Z*rEA}6(534LaYjC8Eht`J%h)bX0~^25q^uqx>J zM67dzvfU}OLh*Zwp!#Dd>Sx?`dMw3gJ0|lbp?pkA7ll%IW#&@lX;-HDbBEoGFiUtB zOp@AnGk*E7|0tE4Gv2-sjfTEhAW(hST1ChMsE;&QpAB0^#l(%){Wb2Ca);F3pk5%J zB>WSRPhFm6sSj*EV7Jn9dFOuIxaST3lwPOTn@q41cv@l{Izyg)X>YE#7!*OI1&t7e z(GVm|NADmD>roJ4>9Q?}4kN74woHtk&V$H!@(kbxB;yoCOe{UmIqdGP(hKpa*rUbx z@a@sFY)LUnDQKkWo_YLjF}n;@V*5DSVV)f=Pd1y`Q5N6-)5J-H?05_={o~GKfZZvXu)<&$0TNkIgyS>Qk0=FjJf6P`@HRJh#B=Lflt(1NnF(wbvCHtHOUy0EmqfKpQ_-w*y-L>V=2_V4$siimx%$I2gsqgxlr%7L*rR^K*<_>SWwlSyfY4Z(-L6g%&{% z;ZL@Ub{=2`GNoW_b)(B8|~(9Ad3oE7IwTE1lbp^58?XgHx+L|&qHKsTwpFv zh)k&qfo{%}Mcra6QD%e72KV>yWt3Ds2uKUe)*v=>Us=7qxTl3V6rtDK4i!B$IzMKm zf8B2Kfh@zCB)1zaG-g`BU`7M!2E}Jr=CFp*6#!AzafRSNuuWD?L-JI;gHp38?eZ>j z%}0mBr80eLMv{2ZH$}&P*(uMUKm#0+BWbtR3#A8Ka__P;eOTj$eKUL3S3p!*6(T-= zZRIaE9;lCFlpNlDaCxdE;89mcSJ*C#8{2vZlIuklNS8g3J7>;};~(KeB+?I)KP^wn zoyaN+trv5gZVi37@4EDv)1R7py>D=&{t8`cYwpgwe(rO~2cwyT|1gFJjA%@A?T}uJ zXJkHO*c$eyV2lLR0F4Up4PXw~Y|KAj&`qV{lMNJ4*7_@__x)x}Hx6jn++oyeiC%hQ zt*O%iZP{Q=XPOBBGffR3M z&%@v&n+33El?L-hQ zW;66lIH{LuX3>=JtT+^!G>Wq~!6kcF$)G>sY_Q#{`3e{rhb3+beBCfVig8#;GXVuG*#10!HFMcC4OjQ?4Dj zZ<4!M$ZW8lERN_4dDkc?uO(?Pt;VkqlDi5=Ah~tXyL@$AxaNaEkFclR&#V~F3;E^J z*kYxjcoa1wr9bJ5Qhce$-GC&mtlIFp=`25kn39M#*3CMz?GmP{Mz4Ign_4ZEQ_@Zx z-PN&IqBC`RZaa&$v)nXibIqGa2d1*`$XW z11}j}C@j*~zkhfsAndRb_|;=J8VVC^E~TLfFm9&k>j<*#esD4a<*mX9qU{g1aCfyg z8!f%>dW6`#PLs;6s4^u$O{haLl1*N;9rtRQnG$IHj3HHx$LH{o5qQ0QmX`Ke#^%{t z7#Z!ys0v3LES{OBfnPi%PLEsVL2=mEvC29|?lb@=%h6-2%D2e+8@F%sR+3i5Gc`dI zK-qTRGn8k6dQL4ZM6L-9fFNOIk%6TUm$;znN*-6X?-ZpJLv98jIKHY3ikIb6n*`bm zfU@|o?@y{rA~DjXw>9v0B?TR&;SeN&LyN3;oQ(qjN+K;6AmVw@^G8ma!!?hPmYe$m zBkBqGpvkw|w{}c7G#U`=mkl4-t2Z~lll4X;1QjAPuSTlG|o80 z_WKJ+P`AK0$a{pydqAbR_mr5~`z|I#o)BK2iQ~MTSDH~H0tk2=h)aC`-a-e&_7J|f zcF)~O>VSqDtxBVGJrdAz`pvbBMEoZ`c*4V{{yGQ(2c^9|nk?komY-}qqcejH`O0;1GU7mh1mJ9xRmL^Q zO;?j4qzj<2Xc)s&4bnmhHz@DqTvd~mC}vzSWJob?*xu|a>rqqWOXDesK4VhaCJ86~ zyXE?P$)Q4v+_)*!R-#tAp0L%Au; zWS&vGKI?aE#BwjC*l0w36>Doqljw&}=VLK&0%3pOEM2Q$FwvYqvmMw9-+`S)w8!Ro z$%(Ebk*JZmT#?BK$;u_}hae~mJZm^Cdqn#Q&h zfi#%1(8^ffUJ%Pw$=cbZfTw}D$9LlD5sO_B{12%m~qv%H?zmFo!54+ zUh(er+s<8Yu9Q|!58lWa_PF`#?aPRunT`Xh_Kz6v?C;(E-u7hv zTlu2ACNqdKTz2MZRm7a<0*@T}BbPXIWe_SZs^S>I`nvUbml1}l)2_8#bnX1}r&!h_ zy_;~m!-8cMRet&iK{1M|o_L1Wo^|FADg!lx7c?joIku(YB?&6M_x{Y;0v$MZ5R{=@ zCGT+Sk9OIs;yp#|H4xRmZkw2VGE-J0izGCt1fG~5J!@M|G11dz#=#uU-hbQN9*}?* zF01?kC@|;wUI4mUfklyrd2CKLHJIBAqS4Py%@jfbNH(U44G{yZ+`CRukkVVE*7pU15^! z_Lkm`MhbFx5WM!vIsg*@5F_VIX_7SPGTP@zqS4hkg=iR}j0SjOSG~RU%$XXZA^!r^(m7$||NM+7Z=0u-!l1bRD5?kJH< zq4Uo*m%CRk-y47k;AtNqMfB#{o+K1V76DMa&Eks9QvbdS<{P;mfxq}A20luee-lUw z%9q^eHe=ngi*k`M>s@0l84K){i()P}0AAz<(3Osej;Cj9Z)#5Ox#Lqj?1Y(a91jFt;`H zXyZdjVF-sQ_zXmac?W;2A@<%$M`2B-766tdNw0P$ISO^woAnY+jW1_ex#o4=ozG%4rz#OK9MIJ|mpTKdp zPTtkW@ZkhrOK|2}73(<|$9>9{{Hr3o9? z_($MRKo*eSn7oZwPPUTl!3vwfW-8%cjg}~z%pGf>GAt$2rYeq2=$JIQSAb?{q6l~= zBxrX<98?EFqdGL}BcMzZF;`3=urX6u6ATo}ax-AD&m^HztyyLp8ZUhKYCjGXr3+8^ zPE9vH6EsS2ZOvrk{jNe`pFW8q@kTM1G2i~WDl%S2a&x0uUy8Z*RMvpOp)rwo1v+g7 z!4!dGAu|WL0<1FrR=}?W5%mbCF;#N;jG%`!@Ov&ri`#MtJY0{k;J6tGFfBp5SPc_~ z8;guWqPUsp&m@o)c@9CdS5J;55tV8y17Yv%^UwdH4^LhVVlnEQ0gBidWumi=we`|36at<`I*hgQ42W|`bhjSpE-cNVq zH)+a4Rs3nvv}{_i^#3$z+Tr(NB|J&}(sW{C_qp_nPwPxdM09MN#<}>!(=kb@@$9q= z$CS*R)12G_qwK;9j`<~}dyC5|jkr~{>J@d3duy6n6dGDP)SEBYwRiTAuU;$b=JniA zFu$48H`vh++`gA~cckh5@WaHhC$*2jsfp*;p3cNg&X>$BG8bMKEG?gT`yuoFYS_mw zsh`(^zx_xD#~S{Md3eH&cow0egpCVw&tVCE(N3Yj75aCJZVeoBR8_o965sFpks@L; znCW1$UMAb2m2o#$)2c6f^<XN_Gumf>1U zBUaOcf0{ITSQPz@oleM9;T32vS@!gQnBkQZT+<+0(Xioi{fk@9Hi{wOvea*?OinaP zTv=nnYTp10y=0v?yobhG`?9hyz;DvDFBwE*CtjT3@?hv6lSsXA(G~nm6rQ{D>3Z}h z9RHm8UGqE7Ctg|7cqs)q zd^AhP?Casky=J*Q=o|R&CQYhvD9)$4;_&|K-zpAmw_?1^7VOv=o#j}yotAVsUe#Lz zjiq`!Lf0I41+F-@e7^sVoEdho?{+2>m+$ndBNrlgP;oLl#%u7O@j%W6FLxi-7S##X7e zqia<)uhS^j^%Aen*}GYIFSWPumh!2&qC3*sDy{dwha7`u82P(eWJz1)Iqf?%d7XOx0iz= zw4V5Xy02qAbn=1jH~(!Qs=bG=jgtsyfACVS@$;CO(EZO38Ml{DjoUix)w*wgta1Cm z!4vPkJW)T2`#Ry8Z25K4>2&JXDa)e!U#E?`ao?WqtGE32Olvyz+jF|g{ckTK?%~#E z$ZsvzX2k^3*5(q`AFR!9+9UYaON_bIu7!Blzpq-tUPi<%a<}S=u7fjT&F=}N)mESd z46jpGQd8d)VLnrK>$dqvOvyR^2(81KC$UenOMma=ue_1)e}!~5pm*BAfYubP+g>*wdJ z16O|jl#$i``^pUf637fu=Ys3@H(+W((c${UrvR!KwPPhfsDTLn+S!Zs#m7i^%E0$e z=n1kIF!IwP*a3DQAuvdC>vFz;oDW?%{zSZXth=BWTVLjJP=Mm{?8I*C&5}I~wnlbr z8Ug5*xP?!o4c!7n2AIm1XA&8@Maoqs{R&MpY^U)ug2Vu@{_1RSf;)LyTx!5T!c8;P zOGZ(q@hVGg(uch>_NeUU-u~FobVz`|UTRss@m}A6RNNUF(az1d9X`sjzISUtziwi+XazJ4UA!ra z2ax$=Y3E(0KMaK2t2=9xhyS#IVxo6WliKnbdzAZ$&EnoWM9+;>Old*^5Nfil_W-*% zU0h&UC+r5kvQXLmr1n8r>!%CvQ&ep(H*u008hwxSJJTZ-7f{@-iF zY~69sV5c<|FuyMVPgi=WrgvuBVKk7Xh-wgu7@T@+rFgNeG9W-z0LMp`wsl`SvKfYY zI@6URfy{0Qw#*fn6F=QK)DagFD)8(&ZfEEEaO3+&70J&Y`F``f|L*WDu8S0l}Heuc4NjklRrl19B-C2mAPG6JG({ua%-31Rkxk(nkkl0@|2TgFig$exl zMmFP`@I9RYZhvrcsD-1<2c4VYUxJe&WIc)J^9PTKX(eVf*ePwA9JGu-8Mp1*(HnOp zJ#xFXauSLc)V964D>A*B**&!Ij#<#_z3KyLBv9G86*Xeqie?XJoIH2)W18_-OJ|@W-qF;gaEpFAj#XI@H zX1o5Prt>_}9mQ0WRuJa&a41SlS`^(O2B7oN>wqu@|#h!vOVbaGY z4a_5+e84cypb#e%_(hWl)tCr?ofPC89k0MImqbVA@6Q49gm%RcviB&%&LE2lE&w8` zAVEOw488&pd$0v5+Jl70rQ}zH;UT~^hYpOOt|-Fai~n}1EI*HcjDm_9-bzp zL7;M1Rt)r0l+-RzSKgQjX8uPIuo=)818G13F!lS;n)~1VEg6eMuohMJyT7Hl6#nt- zh*UVgzh$8my_t`#p@lf{`&;_3n_2f3Hc2={#Ky(ROPx;=SBOtb50gBXDe@gLf^sd_?wsyuYUWEK z)k5!%hu!Ek@-}e8ksrN?yiA@l4mjJ{J@dxm#@I`JXjJ0)lDA(MRFNqkpjdT}PQryQ zV}?ohaRYWRM7xats!RQI|YVE(Z{(=wBC7bXk<0n)B?!_gl=6ov8+5;Yzj|UUge;C2HBWT^`XsR`s|T zYF6>nc`PQT))Vca188p^#mTB&-Mq^!=1S)-^)Q~mj%dd9|G&Sbp&5aLFFomnh7Zus z5l)ht@8`Y||1=bR%XQ@Ro9iEYO!`?5Yp#Vm-Y@KcA8#2BX9B%?A6{IKfg;~e`@Nsv zdiv9mjsBM1gPkwy-%Wa4TRLRLAvL>!-`+p(P596x2j{Z~A?$GDkPi`?{kCsSTtAY0 zB!-}6RK*Ew{QEnD!?KHfFQ&)Et2&P0nbsVe1BOq8g~zrO_Vl?C*zL9ixU@*=I@)M6 zQEV`d5z7IQp~RD-!X~N{^!R~{{8%=NeRT$}hM5BseC`Z-U;;>?JX8xut1M>UzKj_b zsnHk~>)_8dPdCMs%4KZ!ap2;Smuap!=4;ub&Wom!wB1v`kjf%|7wDNK99nqDR^HN7 zYhb9H-!jjpqbBjGw)PROY-0PPW2M^_d|zFV8W(-6voaA1Pf1p8DM!RKUvZ7i5!V|+ zUf=b~#o$ob-8rA&@l)2as|DW`z~)Hg+lIEgg|w8W|Lt$-x7;$QT)*5pwBzl+{VnbN z-fa+~-d%qB{}H18^ta?Aq6XAI^n8Bo_u<;wV*Q8fKfk{Ha05W{&rUG@(Ww`u^1nwX z%?=D-s0hQ5i+E5W11bnZ$x?gopnTq_gP;L}2E(IfX&_z~&x5Fa`p$%T6Zz#76fFqu z1*336nnbjTFc6K(;6dmFjv5Rh8*mIFViLq0+f3zJ?x(5nXi!j_2l!vGe+D9Lz$Ln8nf?U#=j7g@RR_5qz( z!UNJ(fL(y)&S!nI_9}nz<_z#NAp!zxy3FDI=|}#0TBR1aKJad{Esh8D2<_v&Zxv-; zt;ZSgegJlxZrH8fd3Al~y9;!_?i6A0AmYoQOzJhfD1jLDdY@VlpLMJ5cJ9k!^`&zV zuY1?tLPTLft1!aI`IEoC7HRB<6n&UF0IfdwR8nxJ6;dqdDdYpJrwph+&?JI*|6b5J zs1-rQvGAS%^o$bl9GA{gi76Q6eB09}?01e7%kK~BpyOV;;wjE7kaE;%kSJrs$HWv0 z1nAt5+`&5`IzbYOn1Db4KQ^U;2$!K=btPFR4z!X`Dn$MEzkJzLQDC-Vu%3LGn5;1* z^Eq<+jjfo*ME3@gSlnY4b*veFbX-g_ZpKK|TkgGsv%kB{Ta#EFdtbFcZHUBKuiJ{A z8qNuyt?_?K9KS*NW8fG5zsMg66)~;+Pg4hV<^O>4HU1lvuM+v+p#0Yxp!{2YBsCZW z$&MB<`5#ce(Ql2^A5cE~Ur@fm1}EPu%MXCVz2f}-0p$Z$3dQKEfP`j`3q^Z`E|Ot< zRDQR$O?z$0o?AdMbWowcrWhwY2=yBo92*<0VQ)yxDyp819-7%8_+&*isr76I@vY9-)7Kw#q&gwF=A42w?(6i?Q; zC|~GXY?V?VipNvjn7d%tH;wWp9@!#_h7wMpq94=s90)56ZHOoL)RKicfpRb`oKH$q z4%k4Y9Zm$I{;<*{jQFrLS3WEaV#BAUMI2z*L^5iu_^5%6790freMX~-|8U&zho9Sc zI02Dl!qYT$(MlaI{j>{C#ZM$#YXjl5=%ASq>vJZgkzP;9Y)bB^%95T4;B3~>Tu@m*^^CNH4B;47Mk-Mm6oWt`*m5T* z2hWQ^A^7KO;ZoVjhI#ot=;fo&%uJa~6(HZ4Nf=R~-I?2FIT&jcfdIAb-!8MC_&n z-#bk+k=Q}|n_S)Z`CczzVJ{~Mzr%>z81qg3cd@_69J&!k7%XXU-i=6;2J>SEBXmt` zNBp$ZF(iDB`jiLWUkF_xp zS^k91YC7>J^g!9R-SAixJFeG}g4&tQTsvwL2IfN(U@J^PMLn(zxd>M} zD}jMxLQjK81tp|M`cXv>83-LRcVzF`wnA&qQkrtQLj-+)w9F9I{q5%IV zl>CMAoc~Sm_cu3igN)xF{B9Yv@xh;U;`P7lM2qTXoA#KgaIH^re0s@ZCQ4tc}c32F;Rs~e{KFwda z#_>osF&O`-2Q`MuYaov{9@8gb#lkLI^;lm!z%%+cHTeTtxHJuED80Ou zDZ3^4zKXW0mrdm;oz1L~loWf5*GK2uafd6Nc1M}SSSoX!BoMVXO&Iw0M<()8p@yX6 zVM+u_lmV0&8cmQ+aZUgs@xF%gxu;c-%7&7s!hm8Vza<4Su+mw*K~_LYwi3$c>$9X0 zCgCRxWsq_nl1N#U0A5O5(F5w~4az?7Foa^VE&gkufBz?Pk^dXHjlB&o&?`#Sv4+gt ze5HUwnISFVcxO1ni)X4O9jR5AoPDkIWsbat2+|Ea&j+xH3keEfrDP*XMDb9%{JF^d zqxy*%U=~sii&iIiMDn3J?y_Xn9AoDS1QZH5pE2yRu+s0j@m~{(hWtB`$NzUYtCDqC z1k9js1?Hw9Xy(??iAt-!sTb;A0lCmC4Bdp?G!T+;ft_UH5N2a)rC)2<_)jplZ=@07KTrR?(Qj-LPqHlh2g`~NoAjSueiq(*z}QO$zBMDXID@pd%OXH7zQxjVWp{{qxhiHvWI2!CgTAKO!odI5Jr< znYkgN+kKHQ#x2xvPS>yFD-X0T4Nz$>)ry8UUy8hMb^Sq5p3g|rba~^NllJ4Hho_@i zfbuyn<(S0Ki1?_ucxF=O;goX4MYa8mT>ROswo7*mT zG)n-*!OD>GD~(tCZe8kczuh}ig@a+N_*Di{WuoZc|xX^aM9c`Os zwGUyW6!6&MxOJ*!`IhaB*;?gVn=CDGaj5ReC5E{ab4+MJRvAVlGP$|$rY;8wlL7N9 zO+|k1N*rT8mYG5Yn42w7*l_AB8n&$V^*dy1_O+;d?R;8i>%zTk361C2cFmL?tGi!w zQaalgZWSMVc&b6-qU&8j+j~`SrA}pCE6=ki!JoPOp}ONvm-77|SAvUs4}Cg&_~+G6 zoI4k2-p_w@ez6!WVppBJ)?Kk|Q6+lm{k0ys74x8wox|60kxE{QZ{wd`zh3ywbUYoo z+pXc35+6UsJTEhgWQKp*zEcz-p2Bb2tkg^^fD7l-h+z$JVU~er%SP++W|C1mdA{hBjnEp+*DedHO1b2@*FK(45y)pK|#GSS&}suQy5qt01mfY0vJ|13)tXdT$Irgt( zwWJ0>?V?$fSph;lh?7^!%``(IWN92dSj=&*d5L+&8%55GYlFAoiYbgY=PdJU^z^U| zE72-gXABdWvRbMF7s=-`k;IoiN^ZGT(t62HN*vcYok?0PdU1{3%)T_$C^z~A8OF*| z$6n<-G>rIQ;rq5Vn;G>gVcVKH%&Xm+K$;v!2aUdyHn|`wAC_32rX0rctv1W1=_N-l z=4T8pX;}vt^?i+a69cW7IV!4KHuIu8>gAcOz!gZOlC^FohK7b0+f@&BH5A7t{@C)d z8E!dGrVH3Q1Z*ctZ4;(rkmkKSgeXVW4=xnuuarxR*MX!<=TBaQoS({lg{EJ@@@g@k zk1-#Vf8BLu#93uzKHcrDw+u9HrIOfOi8Z3dYxI!IxZiQs#C>$k6H%>daUrh$o*O<>1m0=2foV2{h}Bka~RFK zFO6IVAY{qAf2Et6oT%iP5d@nM0va@4?u$dk)yt$@>1{}pb3*6fuZGk7YL%T=m{8S$ zsRzR$Rm{F+B@>{Fyn8m$f@8d?u^$smVk9FKxFD!o19P9B1n&)WDX%>^;D`YQyuVgZ z_JR%qBQG3bK`aDVYjL#2HQ&RIBXYO;EM$TfvPcip!?xy_<4=SC|8eF}R2E?c&2OI_(*I8HZopD@}|t>e{vIqm4A0 z3&hT44T^ElmJJNZ4j$`x!MdQKmh;ad2a8@3@2I`Fnt$f`>{-Io zi@|AScjZ?`#IbIUhZ9@mnXYQRr00J^d_yZ$KoU7u3lc*w%h;-`3-L z7HPMo;0>k9>Qd`!XLd|I3sh*omcaEf&^x+2qSw@t!^qAVc?cI%=<4`)jM| PuUAT%v;hbU0QUSJ>r{fd From ee75929dd1e9bbb5c6ba5ce5c4475008b354a825 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 7 Jun 2022 13:57:14 +0200 Subject: [PATCH 038/989] 9.2.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 02f70a0ed0..5921dd7da5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.1.0", + "version": "9.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c84e247fb4..0f15bf2702 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.1.0", + "version": "9.2.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 59c7696ce03222f20eb7ed43f962582459f9fcde Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 8 Jun 2022 13:51:34 +0200 Subject: [PATCH 039/989] fix: cancel direct editing before element deletion This is take two on fixing #1664. Without this fix selection change would trigger direct editing completion before the delete listerer could cancel it. Closes #1664 --- .../label-editing/LabelEditingProvider.js | 4 +++- .../label-editing/LabelEditingProviderSpec.js | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/features/label-editing/LabelEditingProvider.js b/lib/features/label-editing/LabelEditingProvider.js index c0520ad8b1..75bfc52dd1 100644 --- a/lib/features/label-editing/LabelEditingProvider.js +++ b/lib/features/label-editing/LabelEditingProvider.js @@ -25,6 +25,8 @@ import { isLabel } from '../../util/LabelUtil'; +var HIGH_PRIORITY = 2000; + export default function LabelEditingProvider( eventBus, bpmnFactory, canvas, directEditing, @@ -61,7 +63,7 @@ export default function LabelEditingProvider( eventBus.on([ 'shape.remove', 'connection.remove' - ], function(event) { + ], HIGH_PRIORITY, function(event) { if (directEditing.isActive(event.element)) { directEditing.cancel(); diff --git a/test/spec/features/label-editing/LabelEditingProviderSpec.js b/test/spec/features/label-editing/LabelEditingProviderSpec.js index 4678b85299..37aaef0a5d 100644 --- a/test/spec/features/label-editing/LabelEditingProviderSpec.js +++ b/test/spec/features/label-editing/LabelEditingProviderSpec.js @@ -205,12 +205,33 @@ describe('features - label-editing', function() { 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'; From a7216eded34592e8d86c7e6a9d64ab19563dd416 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 8 Jun 2022 14:52:58 +0200 Subject: [PATCH 040/989] chore(CHANGELOG): update to v9.2.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0bc0301d3..14c7c3f069 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 9.2.1 + +* `FIX`: cancel direct editing before shape deletion ([#1677](https://github.com/bpmn-io/bpmn-js/issues/1677)) + ## 9.2.0 * `FEAT`: rework select and hover interaction on the diagram ([#1616](https://github.com/bpmn-io/bpmn-js/issues/1616), [#640](https://github.com/bpmn-io/diagram-js/pull/640), [#643](https://github.com/bpmn-io/diagram-js/pull/643)) From 1bbe6ce0afb36f6cada23044a64ab37972028b5d Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 8 Jun 2022 14:57:14 +0200 Subject: [PATCH 041/989] 9.2.1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5921dd7da5..674e22cc79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.2.0", + "version": "9.2.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 0f15bf2702..94345ca72b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.2.0", + "version": "9.2.1", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 6eb9aceb843a43ff6ae6d6d640d22ae84c508315 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Thu, 9 Jun 2022 09:16:56 +0200 Subject: [PATCH 042/989] ci: use codecov GitHub action --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 4066a6f9f3..323e95ad71 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -42,5 +42,5 @@ jobs: TEST_BROWSERS: ChromeHeadless run: npm run all - name: Upload Coverage - run: npx codecov + uses: codecov/codecov-action@v2 if: matrix.os == 'ubuntu-latest' From f81f9e534b8aac98d6550731daa00e7aa90942e2 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Thu, 9 Jun 2022 11:02:16 +0200 Subject: [PATCH 043/989] fix(replace): change from standard to multi loop characteristics Closes #1673 --- .../popup-menu/ReplaceMenuProvider.js | 13 +++-- .../popup-menu/ReplaceMenuProviderSpec.js | 57 +++++++++++++++++++ 2 files changed, 64 insertions(+), 6 deletions(-) diff --git a/lib/features/popup-menu/ReplaceMenuProvider.js b/lib/features/popup-menu/ReplaceMenuProvider.js index aa30567dbe..6ba9a85912 100644 --- a/lib/features/popup-menu/ReplaceMenuProvider.js +++ b/lib/features/popup-menu/ReplaceMenuProvider.js @@ -427,18 +427,19 @@ ReplaceMenuProvider.prototype._getLoopEntries = function(element) { var translate = this._translate; function toggleLoopEntry(event, entry) { - var loopCharacteristics = getBusinessObject(element).loopCharacteristics; + var newLoopCharacteristics = getBusinessObject(element).loopCharacteristics; if (entry.active) { - loopCharacteristics = undefined; + newLoopCharacteristics = undefined; } else { - if (isUndefined(entry.options.isSequential) || !loopCharacteristics) { - loopCharacteristics = self._moddle.create(entry.options.loopCharacteristics); + if (isUndefined(entry.options.isSequential) || !newLoopCharacteristics + || !is(newLoopCharacteristics, entry.options.loopCharacteristics)) { + newLoopCharacteristics = self._moddle.create(entry.options.loopCharacteristics); } - loopCharacteristics.isSequential = entry.options.isSequential; + newLoopCharacteristics.isSequential = entry.options.isSequential; } - self._modeling.updateProperties(element, { loopCharacteristics: loopCharacteristics }); + self._modeling.updateProperties(element, { loopCharacteristics: newLoopCharacteristics }); } var businessObject = getBusinessObject(element), diff --git a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js index c40cd8a923..eb30cf114e 100644 --- a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js +++ b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js @@ -511,6 +511,25 @@ describe('features/popup-menu - replace menu provider', function() { })); + it('should set loop characteristics type', inject(function(bpmnReplace, 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 @@ -617,6 +636,25 @@ describe('features/popup-menu - replace menu provider', function() { })); + it('should set loop characteristics type', inject(function(bpmnReplace, 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 @@ -720,6 +758,25 @@ 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(bpmnReplace, 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; + })); }); }); From 482559ea7af76626b52102f4e5e00a17e2e6cde6 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Jun 2022 13:52:44 +0200 Subject: [PATCH 044/989] test: export diagram during singleStart This allows us to easier debug XML changes during manual integration testing. --- test/spec/ModelerSpec.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/spec/ModelerSpec.js b/test/spec/ModelerSpec.js index 8c12445d13..650e2b7225 100644 --- a/test/spec/ModelerSpec.js +++ b/test/spec/ModelerSpec.js @@ -43,6 +43,12 @@ describe('Modeler', function() { } }); + singleStart && modeler.on('commandStack.changed', function() { + modeler.saveXML({ format: true }).then(function(result) { + console.log(result.xml); + }); + }); + setBpmnJS(modeler); return modeler.importXML(xml).then(function(result) { From 4599885fc09d2bb90f2573bf2660dcac5620875f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Jun 2022 13:55:33 +0200 Subject: [PATCH 045/989] chore(CHANGELOG): update to v9.2.2 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14c7c3f069..569ac16613 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 9.2.2 + +* `FIX`: correctly toggle loop characteristics ([#1673](https://github.com/bpmn-io/bpmn-js/issues/1673)) + ## 9.2.1 * `FIX`: cancel direct editing before shape deletion ([#1677](https://github.com/bpmn-io/bpmn-js/issues/1677)) From 19eefcc94ee18e36ffa592294acca930f78315f7 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Jun 2022 13:58:59 +0200 Subject: [PATCH 046/989] 9.2.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 674e22cc79..5fe2966abc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.2.1", + "version": "9.2.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 94345ca72b..ff759d8a0a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.2.1", + "version": "9.2.2", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 56dca8072130cb3ce37bf27a84e6077cbb59552c Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 10 Jun 2022 23:30:57 +0200 Subject: [PATCH 047/989] chore(CHANGELOG): fix formatting --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 569ac16613..4316fd94ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -83,8 +83,8 @@ ___Note:__ Yet to be released changes appear here._ ## 8.10.0 -* `CHORE`: provide `ModelUtil#isAny` utility ([#https://github.com/bpmn-io/bpmn-js/pull/1604](https://github.com/bpmn-io/bpmn-js/pull/1604)) -* `CHORE`: provide `ModelUtil#getDi` utility ([#https://github.com/bpmn-io/bpmn-js/pull/1604](https://github.com/bpmn-io/bpmn-js/pull/1604)) +* `CHORE`: provide `ModelUtil#isAny` utility ([#1604](https://github.com/bpmn-io/bpmn-js/pull/1604)) +* `CHORE`: provide `ModelUtil#getDi` utility ([#1604](https://github.com/bpmn-io/bpmn-js/pull/1604)) ## 8.9.1 From 212ec07a0b7e8ae54d3c73b36012612d071ffeb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 21:13:43 +0000 Subject: [PATCH 048/989] deps: bump shell-quote from 1.6.1 to 1.7.3 Bumps [shell-quote](https://github.com/substack/node-shell-quote) from 1.6.1 to 1.7.3. - [Release notes](https://github.com/substack/node-shell-quote/releases) - [Changelog](https://github.com/substack/node-shell-quote/blob/master/CHANGELOG.md) - [Commits](https://github.com/substack/node-shell-quote/compare/1.6.1...1.7.3) --- updated-dependencies: - dependency-name: shell-quote dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5fe2966abc..55e6bc8f27 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1460,12 +1460,6 @@ "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", @@ -1551,18 +1545,6 @@ } } }, - "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", @@ -6632,12 +6614,6 @@ "graceful-fs": "^4.1.6" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -10362,16 +10338,10 @@ "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" - } + "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 }, "side-channel": { "version": "1.0.4", From 51aa2cd5758936d8ff85bab9256a60ed5ead2224 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Wed, 29 Jun 2022 09:51:18 +0200 Subject: [PATCH 049/989] deps: update to diagram-js@8.7.0 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 55e6bc8f27..d2b99a6822 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3315,9 +3315,9 @@ "dev": true }, "diagram-js": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.5.0.tgz", - "integrity": "sha512-UHA/Zfs7kG22M9wXAifAyPb2OZ4lG4lFi0CZ0GC6/lXmOsSHwHVZ1s/h9UqaIXnzIKW8SnZoP3Rwqel1ZhZLzg==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.7.0.tgz", + "integrity": "sha512-Yai86RvJ58/Ev83vcHBDjlQFna75+7lPAPxc/z5Oyi4Ow16pFYVWSSBkpKL0ViAen2PFlr8umAjCeJamZr6pQQ==", "requires": { "css.escape": "^1.5.1", "didi": "^8.0.0", @@ -5610,7 +5610,7 @@ "hammerjs": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", - "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" + "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==" }, "har-schema": { "version": "2.0.0", diff --git a/package.json b/package.json index ff759d8a0a..ff5b5a8a39 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "dependencies": { "bpmn-moddle": "^7.1.2", "css.escape": "^1.5.1", - "diagram-js": "^8.5.0", + "diagram-js": "^8.7.0", "diagram-js-direct-editing": "^1.7.0", "ids": "^1.0.0", "inherits-browser": "0.0.1", From befe8b82c843016355ee6d5ea63d98ee86ccf495 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Fri, 10 Jun 2022 08:54:57 +0200 Subject: [PATCH 050/989] feat: add alignment and distribution menu multi-element context pad Closes #1680 Closes #1691 --- assets/bpmn-js.css | 37 +++++- lib/Modeler.js | 2 +- .../AlignElementsContextPadProvider.js | 87 ++++++++++++++ .../align-elements/AlignElementsIcons.js | 15 +++ .../AlignElementsMenuProvider.js | 72 +++++++++++ .../align-elements/BpmnAlignElements.js | 39 ++++++ lib/features/align-elements/index.js | 23 ++++ .../resources/align-bottom-tool.svg | 5 + .../align-horizontal-center-tool.svg | 5 + .../resources/align-left-tool.svg | 5 + .../resources/align-right-tool.svg | 5 + .../align-elements/resources/align-tool.svg | 5 + .../resources/align-top-tool.svg | 5 + .../resources/align-vertical-center-tool.svg | 5 + .../BpmnDistributeElements.js | 34 ++++-- .../DistributeElementsIcons.js | 10 ++ .../DistributeElementsMenuProvider.js | 69 +++++++++++ lib/features/distribute-elements/index.js | 11 +- .../distribute-horizontally-tool.svg | 5 + .../resources/distribute-vertically-tool.svg | 5 + test/fixtures/bpmn/align-elements.bpmn | 112 +++++++++--------- .../bpmn/distribute-elements-filtering.bpmn | 47 +++++--- ...bute-elements-filtering.collaboration.bpmn | 50 ++++++++ .../AlignElementsContextPadProviderSpec.js | 100 ++++++++++++++++ .../AlignElementsMenuProviderSpec.js | 93 +++++++++++++++ .../align-elements/BpmnAlignElementsSpec.js | 92 ++++++++++---- .../BpmnDistributeElementsSpec.js | 102 +++++++++++++--- .../DistributeElementsMenuProviderSpec.js | 95 +++++++++++++++ 28 files changed, 1006 insertions(+), 129 deletions(-) create mode 100644 lib/features/align-elements/AlignElementsContextPadProvider.js create mode 100644 lib/features/align-elements/AlignElementsIcons.js create mode 100644 lib/features/align-elements/AlignElementsMenuProvider.js create mode 100644 lib/features/align-elements/BpmnAlignElements.js create mode 100644 lib/features/align-elements/index.js create mode 100644 lib/features/align-elements/resources/align-bottom-tool.svg create mode 100644 lib/features/align-elements/resources/align-horizontal-center-tool.svg create mode 100644 lib/features/align-elements/resources/align-left-tool.svg create mode 100644 lib/features/align-elements/resources/align-right-tool.svg create mode 100644 lib/features/align-elements/resources/align-tool.svg create mode 100644 lib/features/align-elements/resources/align-top-tool.svg create mode 100644 lib/features/align-elements/resources/align-vertical-center-tool.svg create mode 100644 lib/features/distribute-elements/DistributeElementsIcons.js create mode 100644 lib/features/distribute-elements/DistributeElementsMenuProvider.js create mode 100644 lib/features/distribute-elements/resources/distribute-horizontally-tool.svg create mode 100644 lib/features/distribute-elements/resources/distribute-vertically-tool.svg create mode 100644 test/fixtures/bpmn/distribute-elements-filtering.collaboration.bpmn create mode 100644 test/spec/features/align-elements/AlignElementsContextPadProviderSpec.js create mode 100644 test/spec/features/align-elements/AlignElementsMenuProviderSpec.js create mode 100644 test/spec/features/distribute-elements/DistributeElementsMenuProviderSpec.js diff --git a/assets/bpmn-js.css b/assets/bpmn-js.css index ff933e144d..0b6ba32d7a 100644 --- a/assets/bpmn-js.css +++ b/assets/bpmn-js.css @@ -8,7 +8,7 @@ --color-grey-225-10-80: hsl(225, 10%, 80%); --color-grey-225-10-85: hsl(225, 10%, 85%); --color-grey-225-10-90: hsl(225, 10%, 90%); - --color-grey-225-10-95: hsl(225, 10%, 95%); + --color-grey-225-10-95: hsl(225, 10%, 95%); --color-grey-225-10-97: hsl(225, 10%, 97%); --color-blue-205-100-45: hsl(205, 100%, 45%); @@ -24,8 +24,8 @@ --color-red-360-100-97: hsl(360, 100%, 97%); --color-white: hsl(0, 0%, 100%); - --color-black: hsl(0, 0%, 0%); - --color-black-opacity-05: hsla(0, 0%, 0%, 5%); + --color-black: hsl(0, 0%, 0%); + --color-black-opacity-05: hsla(0, 0%, 0%, 5%); --color-black-opacity-10: hsla(0, 0%, 0%, 10%); --breadcrumbs-font-family: var(--bjs-font-family); @@ -113,4 +113,33 @@ .selected .bjs-drilldown-empty { display: inherit; -} \ No newline at end of file +} + +[data-popup="align-elements"] .djs-popup-body { + display: flex; +} + +[data-popup="align-elements"] .djs-popup-body [data-group] + [data-group] { + border-left: 1px solid var(--popup-border-color); +} + +[data-popup="align-elements"] [data-group="align"] { + display: grid; + grid-template-columns: repeat(3, 1fr); +} + +[data-popup="align-elements"] .djs-popup-body .entry { + height: 20px; + width: 20px; + + padding: 6px 8px; +} + +[data-popup="align-elements"] .djs-popup-body .entry img { + height: 100%; + width: 100%; +} + +[data-popup="align-elements"] .bjs-align-elements-menu-entry { + display: inline-block; +} diff --git a/lib/Modeler.js b/lib/Modeler.js index 717232ba98..7aedb9de40 100644 --- a/lib/Modeler.js +++ b/lib/Modeler.js @@ -10,7 +10,7 @@ import MoveCanvasModule from 'diagram-js/lib/navigation/movecanvas'; import TouchModule from 'diagram-js/lib/navigation/touch'; import ZoomScrollModule from 'diagram-js/lib/navigation/zoomscroll'; -import AlignElementsModule from 'diagram-js/lib/features/align-elements'; +import AlignElementsModule from './features/align-elements'; import AutoPlaceModule from './features/auto-place'; import AutoResizeModule from './features/auto-resize'; import AutoScrollModule from 'diagram-js/lib/features/auto-scroll'; diff --git a/lib/features/align-elements/AlignElementsContextPadProvider.js b/lib/features/align-elements/AlignElementsContextPadProvider.js new file mode 100644 index 0000000000..235d053c16 --- /dev/null +++ b/lib/features/align-elements/AlignElementsContextPadProvider.js @@ -0,0 +1,87 @@ +import { + assign +} from 'min-dash'; + +import ICONS from './AlignElementsIcons'; + +var LOW_PRIORITY = 900; + +/** + * A provider for align elements context pad button + */ +export default function AlignElementsContextPadProvider(contextPad, popupMenu, translate, canvas) { + + contextPad.registerProvider(LOW_PRIORITY, this); + + this._contextPad = contextPad; + this._popupMenu = popupMenu; + this._translate = translate; + this._canvas = canvas; +} + +AlignElementsContextPadProvider.$inject = [ + 'contextPad', + 'popupMenu', + 'translate', + 'canvas' +]; + +AlignElementsContextPadProvider.prototype.getMultiElementContextPadEntries = function(elements) { + var actions = {}; + + if (this._isAllowed(elements)) { + assign(actions, this._getEntries(elements)); + } + + return actions; +}; + +AlignElementsContextPadProvider.prototype._isAllowed = function(elements) { + return !this._popupMenu.isEmpty(elements, 'align-elements'); +}; + +AlignElementsContextPadProvider.prototype._getEntries = function(elements) { + var self = this; + + return { + 'align-elements': { + group: 'align-elements', + title: self._translate('Align elements'), + imageUrl: ICONS['align'], + action: { + click: function(event, elements) { + var position = self._getMenuPosition(elements); + + assign(position, { + cursor: { + x: event.x, + y: event.y + } + }); + + self._popupMenu.open(elements, 'align-elements', position); + } + } + } + }; +}; + +AlignElementsContextPadProvider.prototype._getMenuPosition = function(elements) { + var Y_OFFSET = 5; + + var diagramContainer = this._canvas.getContainer(), + pad = this._contextPad.getPad(elements).html; + + var diagramRect = diagramContainer.getBoundingClientRect(), + padRect = pad.getBoundingClientRect(); + + var top = padRect.top - diagramRect.top; + var left = padRect.left - diagramRect.left; + + var pos = { + x: left, + y: top + padRect.height + Y_OFFSET + }; + + return pos; +}; diff --git a/lib/features/align-elements/AlignElementsIcons.js b/lib/features/align-elements/AlignElementsIcons.js new file mode 100644 index 0000000000..86aeb6a5d4 --- /dev/null +++ b/lib/features/align-elements/AlignElementsIcons.js @@ -0,0 +1,15 @@ +/** + * To change the icons, modify the SVGs in `./resources`, execute `npx svgo -f resources --datauri enc -o dist`, + * and then replace respective icons with the optimized data URIs in `./dist`. + */ +var icons = { + align: 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%202000%202000%22%3E%3Cpath%20style%3D%22stroke%3AcurrentColor%3Bstroke-width%3A100%3Bstroke-linecap%3Around%22%20d%3D%22M200%20150v1700%22%2F%3E%3Crect%20x%3D%22500%22%20y%3D%22150%22%20width%3D%221300%22%20height%3D%22700%22%20rx%3D%221%22%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%22%2F%3E%3Crect%20x%3D%22500%22%20y%3D%221150%22%20width%3D%22700%22%20height%3D%22700%22%20rx%3D%221%22%20style%3D%22fill%3AcurrentColor%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bopacity%3A.5%22%2F%3E%3C%2Fsvg%3E', + bottom: 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201800%201800%22%3E%3Cpath%20style%3D%22stroke%3AcurrentColor%3Bstroke-width%3A100%3Bstroke-linecap%3Around%22%20d%3D%22M150%201650h1500%22%2F%3E%3Crect%20x%3D%22150%22%20y%3D%22350%22%20width%3D%22600%22%20height%3D%221300%22%20rx%3D%221%22%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%22%2F%3E%3Crect%20x%3D%221050%22%20y%3D%22850%22%20width%3D%22600%22%20height%3D%22800%22%20rx%3D%221%22%20style%3D%22fill%3AcurrentColor%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bopacity%3A.5%22%2F%3E%3C%2Fsvg%3E', + center: 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201800%201800%22%3E%3Cpath%20style%3D%22stroke%3AcurrentColor%3Bstroke-width%3A100%3Bstroke-linecap%3Around%22%20d%3D%22M900%20150v1500%22%2F%3E%3Crect%20x%3D%22250%22%20y%3D%22150%22%20width%3D%221300%22%20height%3D%22600%22%20rx%3D%221%22%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%22%2F%3E%3Crect%20x%3D%22500%22%20y%3D%221050%22%20width%3D%22800%22%20height%3D%22600%22%20rx%3D%221%22%20style%3D%22fill%3AcurrentColor%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bopacity%3A.5%22%2F%3E%3C%2Fsvg%3E', + left: 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201800%201800%22%3E%3Cpath%20style%3D%22stroke%3AcurrentColor%3Bstroke-width%3A100%3Bstroke-linecap%3Around%22%20d%3D%22M100%20150v1500%22%2F%3E%3Crect%20x%3D%22100%22%20y%3D%22150%22%20width%3D%221300%22%20height%3D%22600%22%20rx%3D%221%22%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%22%2F%3E%3Crect%20x%3D%22100%22%20y%3D%221050%22%20width%3D%22800%22%20height%3D%22600%22%20rx%3D%221%22%20style%3D%22fill%3AcurrentColor%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bopacity%3A.5%22%2F%3E%3C%2Fsvg%3E', + right: 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201800%201800%22%3E%3Cpath%20style%3D%22stroke%3AcurrentColor%3Bstroke-width%3A100%3Bstroke-linecap%3Around%22%20d%3D%22M1650%20150v1500%22%2F%3E%3Crect%20x%3D%22350%22%20y%3D%22150%22%20width%3D%221300%22%20height%3D%22600%22%20rx%3D%221%22%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%22%2F%3E%3Crect%20x%3D%22850%22%20y%3D%221050%22%20width%3D%22800%22%20height%3D%22600%22%20rx%3D%221%22%20style%3D%22fill%3AcurrentColor%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bopacity%3A.5%22%2F%3E%3C%2Fsvg%3E', + top: 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201800%201800%22%3E%3Cpath%20style%3D%22stroke%3AcurrentColor%3Bstroke-width%3A100%3Bstroke-linecap%3Around%22%20d%3D%22M150%20150h1500%22%2F%3E%3Crect%20x%3D%22150%22%20y%3D%22150%22%20width%3D%22600%22%20height%3D%221300%22%20rx%3D%221%22%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%22%2F%3E%3Crect%20x%3D%221050%22%20y%3D%22150%22%20width%3D%22600%22%20height%3D%22800%22%20rx%3D%221%22%20style%3D%22fill%3AcurrentColor%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bopacity%3A.5%22%2F%3E%3C%2Fsvg%3E', + middle: 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201800%201800%22%3E%3Cpath%20style%3D%22stroke%3AcurrentColor%3Bstroke-width%3A100%3Bstroke-linecap%3Around%22%20d%3D%22M150%20900h1500%22%2F%3E%3Crect%20x%3D%22150%22%20y%3D%22250%22%20width%3D%22600%22%20height%3D%221300%22%20rx%3D%221%22%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%22%2F%3E%3Crect%20x%3D%221050%22%20y%3D%22500%22%20width%3D%22600%22%20height%3D%22800%22%20rx%3D%221%22%20style%3D%22fill%3AcurrentColor%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bopacity%3A.5%22%2F%3E%3C%2Fsvg%3E' +}; + +export default icons; diff --git a/lib/features/align-elements/AlignElementsMenuProvider.js b/lib/features/align-elements/AlignElementsMenuProvider.js new file mode 100644 index 0000000000..61805a75bf --- /dev/null +++ b/lib/features/align-elements/AlignElementsMenuProvider.js @@ -0,0 +1,72 @@ +import ICONS from './AlignElementsIcons'; + +import { + assign, + forEach, +} from 'min-dash'; + +var ALIGNMENT_OPTIONS = [ + 'left', + 'center', + 'right', + 'top', + 'middle', + 'bottom' +]; + +/** + * A provider for align elements popup menu. + */ +export default function AlignElementsMenuProvider(popupMenu, alignElements, translate, rules) { + + this._alignElements = alignElements; + this._translate = translate; + this._popupMenu = popupMenu; + this._rules = rules; + + popupMenu.registerProvider('align-elements', this); +} + +AlignElementsMenuProvider.$inject = [ + 'popupMenu', + 'alignElements', + 'translate', + 'rules' +]; + +AlignElementsMenuProvider.prototype.getPopupMenuEntries = function(elements) { + var entries = {}; + + if (this._isAllowed(elements)) { + assign(entries, this._getEntries(elements)); + } + + return entries; +}; + +AlignElementsMenuProvider.prototype._isAllowed = function(elements) { + return this._rules.allowed('elements.align', { elements: elements }); +}; + +AlignElementsMenuProvider.prototype._getEntries = function(elements) { + var alignElements = this._alignElements, + translate = this._translate, + popupMenu = this._popupMenu; + + var entries = {}; + + forEach(ALIGNMENT_OPTIONS, function(alignment) { + entries[ 'align-elements-' + alignment ] = { + group: 'align', + title: translate('Align elements ' + alignment), + className: 'bjs-align-elements-menu-entry', + imageUrl: ICONS[alignment], + action: function(event, entry) { + alignElements.trigger(elements, alignment); + popupMenu.close(); + } + }; + }); + + return entries; +}; diff --git a/lib/features/align-elements/BpmnAlignElements.js b/lib/features/align-elements/BpmnAlignElements.js new file mode 100644 index 0000000000..451b8068fb --- /dev/null +++ b/lib/features/align-elements/BpmnAlignElements.js @@ -0,0 +1,39 @@ +import inherits from 'inherits-browser'; + +import RuleProvider from 'diagram-js/lib/features/rules/RuleProvider'; +import { getParents } from 'diagram-js/lib/util/Elements'; + +import { + filter +} from 'min-dash'; + +/** + * Rule provider for alignment of BPMN elements. + */ +export default function BpmnAlignElements(eventBus) { + RuleProvider.call(this, eventBus); +} + +BpmnAlignElements.$inject = [ 'eventBus' ]; + +inherits(BpmnAlignElements, RuleProvider); + +BpmnAlignElements.prototype.init = function() { + this.addRule('elements.align', function(context) { + var elements = context.elements; + + // filter out elements which cannot be aligned + var filteredElements = filter(elements, function(element) { + return !(element.waypoints || element.host || element.labelTarget); + }); + + // filter out elements which are children of any of the selected elements + filteredElements = getParents(filteredElements); + + if (filteredElements.length < 2) { + return false; + } + + return filteredElements; + }); +}; diff --git a/lib/features/align-elements/index.js b/lib/features/align-elements/index.js new file mode 100644 index 0000000000..2ce329e43e --- /dev/null +++ b/lib/features/align-elements/index.js @@ -0,0 +1,23 @@ +import AlignElementsModule from 'diagram-js/lib/features/align-elements'; +import ContextPadModule from 'diagram-js/lib/features/context-pad'; +import PopupMenuModule from 'diagram-js/lib/features/popup-menu'; + +import AlignElementsContextPadProvider from './AlignElementsContextPadProvider'; +import AlignElementsMenuProvider from './AlignElementsMenuProvider'; +import BpmnAlignElements from './BpmnAlignElements'; + +export default { + __depends__: [ + AlignElementsModule, + ContextPadModule, + PopupMenuModule + ], + __init__: [ + 'alignElementsContextPadProvider', + 'alignElementsMenuProvider', + 'bpmnAlignElements' + ], + alignElementsContextPadProvider: [ 'type', AlignElementsContextPadProvider ], + alignElementsMenuProvider: [ 'type', AlignElementsMenuProvider ], + bpmnAlignElements: [ 'type', BpmnAlignElements] +}; diff --git a/lib/features/align-elements/resources/align-bottom-tool.svg b/lib/features/align-elements/resources/align-bottom-tool.svg new file mode 100644 index 0000000000..ff578d93e9 --- /dev/null +++ b/lib/features/align-elements/resources/align-bottom-tool.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/lib/features/align-elements/resources/align-horizontal-center-tool.svg b/lib/features/align-elements/resources/align-horizontal-center-tool.svg new file mode 100644 index 0000000000..699e1a72ce --- /dev/null +++ b/lib/features/align-elements/resources/align-horizontal-center-tool.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/lib/features/align-elements/resources/align-left-tool.svg b/lib/features/align-elements/resources/align-left-tool.svg new file mode 100644 index 0000000000..236f92acaf --- /dev/null +++ b/lib/features/align-elements/resources/align-left-tool.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/lib/features/align-elements/resources/align-right-tool.svg b/lib/features/align-elements/resources/align-right-tool.svg new file mode 100644 index 0000000000..ac040e7087 --- /dev/null +++ b/lib/features/align-elements/resources/align-right-tool.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/lib/features/align-elements/resources/align-tool.svg b/lib/features/align-elements/resources/align-tool.svg new file mode 100644 index 0000000000..7dfa51e48c --- /dev/null +++ b/lib/features/align-elements/resources/align-tool.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/lib/features/align-elements/resources/align-top-tool.svg b/lib/features/align-elements/resources/align-top-tool.svg new file mode 100644 index 0000000000..2cdc23de3f --- /dev/null +++ b/lib/features/align-elements/resources/align-top-tool.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/lib/features/align-elements/resources/align-vertical-center-tool.svg b/lib/features/align-elements/resources/align-vertical-center-tool.svg new file mode 100644 index 0000000000..3b56063d43 --- /dev/null +++ b/lib/features/align-elements/resources/align-vertical-center-tool.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/lib/features/distribute-elements/BpmnDistributeElements.js b/lib/features/distribute-elements/BpmnDistributeElements.js index ce63a419a1..4e641c477c 100644 --- a/lib/features/distribute-elements/BpmnDistributeElements.js +++ b/lib/features/distribute-elements/BpmnDistributeElements.js @@ -1,3 +1,8 @@ +import inherits from 'inherits-browser'; + +import RuleProvider from 'diagram-js/lib/features/rules/RuleProvider'; +import { getParents } from 'diagram-js/lib/util/Elements'; + import { filter } from 'min-dash'; @@ -11,10 +16,19 @@ import { * Registers element exclude filters for elements that * currently do not support distribution. */ -export default function BpmnDistributeElements(distributeElements) { +export default function BpmnDistributeElements(distributeElements, eventBus, rules) { + RuleProvider.call(this, eventBus); +} + +BpmnDistributeElements.$inject = [ 'distributeElements', 'eventBus', 'rules' ]; + +inherits(BpmnDistributeElements, RuleProvider); + +BpmnDistributeElements.prototype.init = function() { + this.addRule('elements.distribute', function(context) { + var elements = context.elements; - distributeElements.registerFilter(function(elements) { - return filter(elements, function(element) { + elements = filter(elements, function(element) { var cannotDistribute = isAny(element, [ 'bpmn:Association', 'bpmn:BoundaryEvent', @@ -22,14 +36,20 @@ export default function BpmnDistributeElements(distributeElements) { 'bpmn:DataOutputAssociation', 'bpmn:Lane', 'bpmn:MessageFlow', - 'bpmn:Participant', 'bpmn:SequenceFlow', 'bpmn:TextAnnotation' ]); return !(element.labelTarget || cannotDistribute); }); - }); -} -BpmnDistributeElements.$inject = [ 'distributeElements' ]; \ No newline at end of file + // filter out elements which are children of any of the selected elements + elements = getParents(elements); + + if (elements.length < 3) { + return false; + } + + return elements; + }); +}; diff --git a/lib/features/distribute-elements/DistributeElementsIcons.js b/lib/features/distribute-elements/DistributeElementsIcons.js new file mode 100644 index 0000000000..b1621a992a --- /dev/null +++ b/lib/features/distribute-elements/DistributeElementsIcons.js @@ -0,0 +1,10 @@ +/** + * To change the icons, modify the SVGs in `./resources`, execute `npx svgo -f resources --datauri enc -o dist`, + * and then replace respective icons with the optimized data URIs in `./dist`. + */ +var icons = { + horizontal: 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201800%201800%22%3E%3Cpath%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bstroke-linejoin%3Around%22%20d%3D%22M450%20400V150h900v250%22%2F%3E%3Crect%20x%3D%22150%22%20y%3D%22450%22%20width%3D%22600%22%20height%3D%221200%22%20rx%3D%221%22%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%22%2F%3E%3Crect%20x%3D%221050%22%20y%3D%22450%22%20width%3D%22600%22%20height%3D%22800%22%20rx%3D%221%22%20style%3D%22fill%3AcurrentColor%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bopacity%3A.5%22%2F%3E%3C%2Fsvg%3E', + vertical: 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201800%201800%22%3E%3Cpath%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bstroke-linejoin%3Around%22%20d%3D%22M400%201350H150V450h250%22%2F%3E%3Crect%20x%3D%22450%22%20y%3D%22150%22%20width%3D%221200%22%20height%3D%22600%22%20rx%3D%221%22%20style%3D%22fill%3Anone%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%22%2F%3E%3Crect%20x%3D%22450%22%20y%3D%221050%22%20width%3D%22800%22%20height%3D%22600%22%20rx%3D%221%22%20style%3D%22fill%3AcurrentColor%3Bstroke%3AcurrentColor%3Bstroke-width%3A100%3Bopacity%3A.5%22%2F%3E%3C%2Fsvg%3E', +}; + +export default icons; diff --git a/lib/features/distribute-elements/DistributeElementsMenuProvider.js b/lib/features/distribute-elements/DistributeElementsMenuProvider.js new file mode 100644 index 0000000000..7fbefd1e7e --- /dev/null +++ b/lib/features/distribute-elements/DistributeElementsMenuProvider.js @@ -0,0 +1,69 @@ +import ICONS from './DistributeElementsIcons'; + +import { assign } from 'min-dash'; + +var LOW_PRIORITY = 900; + +/** + * A provider for distribute elements popup menu. + */ +export default function DistributeElementsMenuProvider( + popupMenu, distributeElements, translate, rules) { + this._distributeElements = distributeElements; + this._translate = translate; + this._popupMenu = popupMenu; + this._rules = rules; + + popupMenu.registerProvider('align-elements', LOW_PRIORITY, this); +} + +DistributeElementsMenuProvider.$inject = [ + 'popupMenu', + 'distributeElements', + 'translate', + 'rules' +]; + +DistributeElementsMenuProvider.prototype.getPopupMenuEntries = function(elements) { + var entries = {}; + + if (this._isAllowed(elements)) { + assign(entries, this._getEntries(elements)); + } + + return entries; +}; + +DistributeElementsMenuProvider.prototype._isAllowed = function(elements) { + return this._rules.allowed('elements.distribute', { elements: elements }); +}; + +DistributeElementsMenuProvider.prototype._getEntries = function(elements) { + var distributeElements = this._distributeElements, + translate = this._translate, + popupMenu = this._popupMenu; + + var entries = { + 'distribute-elements-horizontal': { + group: 'distribute', + title: translate('Distribute elements horizontally'), + className: 'bjs-align-elements-menu-entry', + imageUrl: ICONS['horizontal'], + action: function(event, entry) { + distributeElements.trigger(elements, 'horizontal'); + popupMenu.close(); + } + }, + 'distribute-elements-vertical': { + group: 'distribute', + title: translate('Distribute elements vertically'), + imageUrl: ICONS['vertical'], + action: function(event, entry) { + distributeElements.trigger(elements, 'vertical'); + popupMenu.close(); + } + }, + }; + + return entries; +}; diff --git a/lib/features/distribute-elements/index.js b/lib/features/distribute-elements/index.js index d6ec22c8dc..15ea2f0ff6 100644 --- a/lib/features/distribute-elements/index.js +++ b/lib/features/distribute-elements/index.js @@ -1,12 +1,19 @@ import DistributeElementsModule from 'diagram-js/lib/features/distribute-elements'; +import PopupMenuModule from 'diagram-js/lib/features/popup-menu'; import BpmnDistributeElements from './BpmnDistributeElements'; +import DistributeElementsMenuProvider from './DistributeElementsMenuProvider'; export default { __depends__: [ + PopupMenuModule, DistributeElementsModule ], - __init__: [ 'bpmnDistributeElements' ], - bpmnDistributeElements: [ 'type', BpmnDistributeElements ] + __init__: [ + 'bpmnDistributeElements', + 'distributeElementsMenuProvider' + ], + bpmnDistributeElements: [ 'type', BpmnDistributeElements ], + distributeElementsMenuProvider: [ 'type', DistributeElementsMenuProvider ] }; diff --git a/lib/features/distribute-elements/resources/distribute-horizontally-tool.svg b/lib/features/distribute-elements/resources/distribute-horizontally-tool.svg new file mode 100644 index 0000000000..0c1e2c4c43 --- /dev/null +++ b/lib/features/distribute-elements/resources/distribute-horizontally-tool.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/lib/features/distribute-elements/resources/distribute-vertically-tool.svg b/lib/features/distribute-elements/resources/distribute-vertically-tool.svg new file mode 100644 index 0000000000..446c99aa24 --- /dev/null +++ b/lib/features/distribute-elements/resources/distribute-vertically-tool.svg @@ -0,0 +1,5 @@ + + + + + \ 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/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/spec/features/align-elements/AlignElementsContextPadProviderSpec.js b/test/spec/features/align-elements/AlignElementsContextPadProviderSpec.js new file mode 100644 index 0000000000..943408e4c5 --- /dev/null +++ b/test/spec/features/align-elements/AlignElementsContextPadProviderSpec.js @@ -0,0 +1,100 @@ +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..d03a37682b --- /dev/null +++ b/test/spec/features/align-elements/AlignElementsMenuProviderSpec.js @@ -0,0 +1,93 @@ +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; + }) + ); +}); + + +// 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..104889da68 100644 --- a/test/spec/features/align-elements/BpmnAlignElementsSpec.js +++ b/test/spec/features/align-elements/BpmnAlignElementsSpec.js @@ -3,7 +3,7 @@ import { 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 +31,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 +51,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 +71,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 +90,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 +108,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 +126,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/distribute-elements/BpmnDistributeElementsSpec.js b/test/spec/features/distribute-elements/BpmnDistributeElementsSpec.js index d09a332dd3..8e5509ec46 100644 --- a/test/spec/features/distribute-elements/BpmnDistributeElementsSpec.js +++ b/test/spec/features/distribute-elements/BpmnDistributeElementsSpec.js @@ -1,3 +1,5 @@ +import { forEach } from 'min-dash'; + import { bootstrapModeler, inject @@ -7,6 +9,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 +31,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'); }); })); @@ -79,34 +83,96 @@ 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..421d908570 --- /dev/null +++ b/test/spec/features/distribute-elements/DistributeElementsMenuProviderSpec.js @@ -0,0 +1,95 @@ +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); +} From fbbea94631b4043d2b10d53eb9137fe552c769b3 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Thu, 7 Jul 2022 13:08:07 +0200 Subject: [PATCH 051/989] chore(CHANGELOG): update to v9.3.0 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4316fd94ac..721d62a898 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 9.3.0 + +* `FEAT`: add aligment and distribution menu ([#1680](https://github.com/bpmn-io/bpmn-js/issues/1680), [#1691](https://github.com/bpmn-io/bpmn-js/issues/1691)) +* `DEPS`: update to `diagram-js@8.7.0` + ## 9.2.2 * `FIX`: correctly toggle loop characteristics ([#1673](https://github.com/bpmn-io/bpmn-js/issues/1673)) From 6feaeca79bbcde3f39dae42761fe75ea8a5eed15 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Thu, 7 Jul 2022 13:11:01 +0200 Subject: [PATCH 052/989] 9.3.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index d2b99a6822..64c7703f7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.2.2", + "version": "9.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ff5b5a8a39..fa3db4c29c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.2.2", + "version": "9.3.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From fc92433376ac7e9a0d8ae4f5f5fb4851a40c0ca4 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 24 Jun 2022 11:27:15 +0200 Subject: [PATCH 053/989] test: add generic logging facility This allows us to enable different sorts of logging conveniently via the test helper and control it via query parameters. --- test/helper/index.js | 25 +++++++++++++++++++++++++ test/spec/ModelerSpec.js | 11 ++++------- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/test/helper/index.js b/test/helper/index.js index f8d3928724..9e005eadd1 100644 --- a/test/helper/index.js +++ b/test/helper/index.js @@ -267,6 +267,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() { + modeler.saveXML({ format: true }).then(function(result) { + console.log(result.xml); + }); + }); +} + export function setBpmnJS(instance) { BPMN_JS = instance; } diff --git a/test/spec/ModelerSpec.js b/test/spec/ModelerSpec.js index 650e2b7225..ea8c136a52 100644 --- a/test/spec/ModelerSpec.js +++ b/test/spec/ModelerSpec.js @@ -13,7 +13,8 @@ import { import { setBpmnJS, clearBpmnJS, - collectTranslations + collectTranslations, + enableLogging } from 'test/TestHelper'; import { getDi } from 'lib/util/ModelUtil'; @@ -43,14 +44,10 @@ describe('Modeler', function() { } }); - singleStart && modeler.on('commandStack.changed', function() { - modeler.saveXML({ format: true }).then(function(result) { - console.log(result.xml); - }); - }); - setBpmnJS(modeler); + enableLogging(modeler, singleStart); + return modeler.importXML(xml).then(function(result) { return { error: null, warnings: result.warnings, modeler: modeler }; }).catch(function(err) { From 26fea303611f9ee1efabe8ac63f8c4c09b0573fc Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Thu, 7 Jul 2022 16:02:48 +0200 Subject: [PATCH 054/989] fix: properly size icons in distribute/align --- assets/bpmn-js.css | 9 +++--- .../AlignElementsMenuProviderSpec.js | 28 +++++++++++++++++++ 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/assets/bpmn-js.css b/assets/bpmn-js.css index 0b6ba32d7a..c9f3b9e09b 100644 --- a/assets/bpmn-js.css +++ b/assets/bpmn-js.css @@ -129,15 +129,14 @@ } [data-popup="align-elements"] .djs-popup-body .entry { - height: 20px; - width: 20px; - padding: 6px 8px; } [data-popup="align-elements"] .djs-popup-body .entry img { - height: 100%; - width: 100%; + display: block; + + height: 20px; + width: 20px; } [data-popup="align-elements"] .bjs-align-elements-menu-entry { diff --git a/test/spec/features/align-elements/AlignElementsMenuProviderSpec.js b/test/spec/features/align-elements/AlignElementsMenuProviderSpec.js index d03a37682b..a4f0a29b83 100644 --- a/test/spec/features/align-elements/AlignElementsMenuProviderSpec.js +++ b/test/spec/features/align-elements/AlignElementsMenuProviderSpec.js @@ -78,6 +78,34 @@ describe('features/align-elements - popup menu', function() { 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('img', entry); + + var bbox = icon.getBoundingClientRect(); + + expect(bbox.width).to.eql(20); + expect(bbox.height).to.eql(20); + })); }); From 6d87682ee8493b3fbaaa0fdde59cee389c5fe77c Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Thu, 7 Jul 2022 16:46:59 +0200 Subject: [PATCH 055/989] chore(CHANGELOG): update to v9.3.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 721d62a898..7918cc8624 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 9.3.1 + +* `FIX`: properly size icons for distribute/align menu ([#1694](https://github.com/bpmn-io/bpmn-js/pull/1694)) + ## 9.3.0 * `FEAT`: add aligment and distribution menu ([#1680](https://github.com/bpmn-io/bpmn-js/issues/1680), [#1691](https://github.com/bpmn-io/bpmn-js/issues/1691)) From 029c859cb4d1d7ca6e5a97da9fbda5ec0e06e2eb Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Thu, 7 Jul 2022 16:50:17 +0200 Subject: [PATCH 056/989] 9.3.1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 64c7703f7c..33d93d314e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.3.0", + "version": "9.3.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fa3db4c29c..39e01bb7ff 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.3.0", + "version": "9.3.1", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 5a75bab2fc5b893b147f8d50d79484522eaaebab Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 12 Jul 2022 13:49:13 +0200 Subject: [PATCH 057/989] deps: update to diagram-js@8.7.1 Closes https://github.com/bpmn-io/bpmn-js/issues/1692 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 33d93d314e..bfb7e2a0b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3315,9 +3315,9 @@ "dev": true }, "diagram-js": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.7.0.tgz", - "integrity": "sha512-Yai86RvJ58/Ev83vcHBDjlQFna75+7lPAPxc/z5Oyi4Ow16pFYVWSSBkpKL0ViAen2PFlr8umAjCeJamZr6pQQ==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.7.1.tgz", + "integrity": "sha512-A6kEiE7yxqgR3o7fFBIeA7miQxxJG/hjpGtjuRfC6Eprs5W5YtZDKeE4efRVrD2NNH/s6bVWuZ4XW5tkDsiH8Q==", "requires": { "css.escape": "^1.5.1", "didi": "^8.0.0", diff --git a/package.json b/package.json index 39e01bb7ff..8f309a83f7 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "dependencies": { "bpmn-moddle": "^7.1.2", "css.escape": "^1.5.1", - "diagram-js": "^8.7.0", + "diagram-js": "^8.7.1", "diagram-js-direct-editing": "^1.7.0", "ids": "^1.0.0", "inherits-browser": "0.0.1", From c1d0e3d4e28d94f0eeb7177193e577147f37b69a Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 12 Jul 2022 13:51:19 +0200 Subject: [PATCH 058/989] chore(CHANGELOG): update to v9.3.2 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7918cc8624..713f6422ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 9.3.2 + +* `FIX`: prevent unnecessary scrollbar ([#1692](https://github.com/bpmn-io/bpmn-js/issues/1692)) +* `DEPS`: update to diagram-js@8.7.1 + ## 9.3.1 * `FIX`: properly size icons for distribute/align menu ([#1694](https://github.com/bpmn-io/bpmn-js/pull/1694)) From 9b66c9771cb03fd05993f7e286e21c364adba3cc Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Fri, 15 Oct 2021 16:59:34 +0200 Subject: [PATCH 059/989] fix: check for replacement using actual target Closes #1696 Related to https://github.com/camunda/camunda-modeler/issues/2438 --- .../behavior/ReplaceElementBehaviour.js | 12 ++++-- .../behavior/ReplaceElementBehaviourSpec.js | 41 ++++++++++++++++++- 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/lib/features/modeling/behavior/ReplaceElementBehaviour.js b/lib/features/modeling/behavior/ReplaceElementBehaviour.js index d15445afd1..420cb15c60 100644 --- a/lib/features/modeling/behavior/ReplaceElementBehaviour.js +++ b/lib/features/modeling/behavior/ReplaceElementBehaviour.js @@ -1,6 +1,6 @@ import inherits from 'inherits-browser'; -import { forEach } from 'min-dash'; +import { forEach, reduce } from 'min-dash'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; @@ -30,10 +30,14 @@ export default function ReplaceElementBehaviour( target = context.parent, elements = context.elements; - var canReplace = bpmnRules.canReplace(elements, target); + var elementReplacements = reduce(elements, function(replacements, element) { + var canReplace = bpmnRules.canReplace([ element ], element.host || element.parent || target); - if (canReplace) { - this.replaceElements(elements, canReplace.replacements); + return canReplace ? replacements.concat(canReplace.replacements) : replacements; + }, []); + + if (elementReplacements.length) { + this.replaceElements(elements, elementReplacements); } }, this); diff --git a/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js b/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js index eda241056c..49c79d7926 100644 --- a/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js +++ b/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js @@ -7,8 +7,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 +33,8 @@ describe('features/modeling - replace element behavior', function() { replacePreviewModule, modelingModule, coreModule, - moveModule + moveModule, + copyPasteModule ]; @@ -110,6 +115,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; + }); + }) + ); + }); From 896fb2bb7dad48a0aba0112fd54892d43088d9cf Mon Sep 17 00:00:00 2001 From: Philipp Date: Wed, 3 Aug 2022 18:00:14 +0200 Subject: [PATCH 060/989] chore(CHANGELOG): update to v9.3.2 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 713f6422ae..f432205a60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ___Note:__ Yet to be released changes appear here._ ## 9.3.2 * `FIX`: prevent unnecessary scrollbar ([#1692](https://github.com/bpmn-io/bpmn-js/issues/1692)) +* `FIX`: check for replacement using actual target ([#1699](https://github.com/bpmn-io/bpmn-js/pull/1699)) * `DEPS`: update to diagram-js@8.7.1 ## 9.3.1 From bf910d011bb9190b1c27586fa9827eb1883909b6 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 4 Aug 2022 10:56:35 +0200 Subject: [PATCH 061/989] 9.3.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index bfb7e2a0b3..d3c6e806b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.3.1", + "version": "9.3.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 8f309a83f7..06b8b189e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.3.1", + "version": "9.3.2", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 025a35e6a4b15c80aaf597ded213e68656fbf4ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Jul 2022 01:53:28 +0000 Subject: [PATCH 062/989] deps: bump terser from 4.8.0 to 4.8.1 Bumps [terser](https://github.com/terser/terser) from 4.8.0 to 4.8.1. - [Release notes](https://github.com/terser/terser/releases) - [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md) - [Commits](https://github.com/terser/terser/commits) --- updated-dependencies: - dependency-name: terser dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 108 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 85 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index d3c6e806b8..ae42f4047c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -880,6 +880,55 @@ "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", "dev": true }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2477,8 +2526,7 @@ "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 + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-xor": { "version": "1.0.3", @@ -9857,14 +9905,12 @@ "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 + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" }, "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" @@ -9873,21 +9919,9 @@ "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 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } - }, - "terser": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", - "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - } } } }, @@ -11263,21 +11297,38 @@ } }, "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map-support": "~0.5.20" }, "dependencies": { + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "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 + }, + "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" + } } } }, @@ -11320,6 +11371,17 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } } } }, From a0c7402f162ece6e66d67245a2cc78755e1a4d4b Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 12 Aug 2022 11:08:51 +0200 Subject: [PATCH 063/989] chore(grid-snapping): rename / prefix behaviors Prevents clashes in behavior names (i.e. `CreateParticipantBehavior`). --- ...ehavior.js => GridSnappingAutoPlaceBehavior.js} | 4 ++-- ....js => GridSnappingLayoutConnectionBehavior.js} | 8 ++++---- ...avior.js => GridSnappingParticipantBehavior.js} | 4 ++-- lib/features/grid-snapping/behavior/index.js | 14 +++++++------- 4 files changed, 15 insertions(+), 15 deletions(-) rename lib/features/grid-snapping/behavior/{AutoPlaceBehavior.js => GridSnappingAutoPlaceBehavior.js} (87%) rename lib/features/grid-snapping/behavior/{LayoutConnectionBehavior.js => GridSnappingLayoutConnectionBehavior.js} (89%) rename lib/features/grid-snapping/behavior/{CreateParticipantBehavior.js => GridSnappingParticipantBehavior.js} (81%) diff --git a/lib/features/grid-snapping/behavior/AutoPlaceBehavior.js b/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.js similarity index 87% rename from lib/features/grid-snapping/behavior/AutoPlaceBehavior.js rename to lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.js index 63c9e5d83b..89493a1c15 100644 --- a/lib/features/grid-snapping/behavior/AutoPlaceBehavior.js +++ b/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.js @@ -6,7 +6,7 @@ import { is } from '../../../util/ModelUtil'; var HIGH_PRIORITY = 2000; -export default function AutoPlaceBehavior(eventBus, gridSnapping) { +export default function GridSnappingAutoPlaceBehavior(eventBus, gridSnapping) { eventBus.on('autoPlace', HIGH_PRIORITY, function(context) { var source = context.source, sourceMid = getMid(source), @@ -47,7 +47,7 @@ export default function AutoPlaceBehavior(eventBus, gridSnapping) { }); } -AutoPlaceBehavior.$inject = [ +GridSnappingAutoPlaceBehavior.$inject = [ 'eventBus', 'gridSnapping' ]; diff --git a/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js b/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js similarity index 89% rename from lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js rename to lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js index df8001f25e..48d184eca9 100644 --- a/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js +++ b/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js @@ -14,7 +14,7 @@ var HIGH_PRIORITY = 3000; /** * Snaps connections with Manhattan layout. */ -export default function LayoutConnectionBehavior(eventBus, gridSnapping, modeling) { +export default function GridSnappingLayoutConnectionBehavior(eventBus, gridSnapping, modeling) { CommandInterceptor.call(this, eventBus); this._gridSnapping = gridSnapping; @@ -42,13 +42,13 @@ export default function LayoutConnectionBehavior(eventBus, gridSnapping, modelin }); } -LayoutConnectionBehavior.$inject = [ +GridSnappingLayoutConnectionBehavior.$inject = [ 'eventBus', 'gridSnapping', 'modeling' ]; -inherits(LayoutConnectionBehavior, CommandInterceptor); +inherits(GridSnappingLayoutConnectionBehavior, CommandInterceptor); /** * Snap middle segments of a given connection. @@ -57,7 +57,7 @@ inherits(LayoutConnectionBehavior, CommandInterceptor); * * @returns {Array} */ -LayoutConnectionBehavior.prototype.snapMiddleSegments = function(waypoints) { +GridSnappingLayoutConnectionBehavior.prototype.snapMiddleSegments = function(waypoints) { var gridSnapping = this._gridSnapping, snapped; diff --git a/lib/features/grid-snapping/behavior/CreateParticipantBehavior.js b/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.js similarity index 81% rename from lib/features/grid-snapping/behavior/CreateParticipantBehavior.js rename to lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.js index b20ee0a140..48e6130a3c 100644 --- a/lib/features/grid-snapping/behavior/CreateParticipantBehavior.js +++ b/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.js @@ -3,7 +3,7 @@ import { is } from '../../../util/ModelUtil'; var HIGHER_PRIORITY = 1750; -export default function CreateParticipantBehavior(canvas, eventBus, gridSnapping) { +export default function GridSnappingParticipantBehavior(canvas, eventBus, gridSnapping) { eventBus.on([ 'create.start', 'shape.move.start' @@ -29,7 +29,7 @@ export default function CreateParticipantBehavior(canvas, eventBus, gridSnapping }); } -CreateParticipantBehavior.$inject = [ +GridSnappingParticipantBehavior.$inject = [ 'canvas', 'eventBus', 'gridSnapping' diff --git a/lib/features/grid-snapping/behavior/index.js b/lib/features/grid-snapping/behavior/index.js index cd1800c514..68038c1302 100644 --- a/lib/features/grid-snapping/behavior/index.js +++ b/lib/features/grid-snapping/behavior/index.js @@ -1,14 +1,14 @@ -import AutoPlaceBehavior from './AutoPlaceBehavior'; -import CreateParticipantBehavior from './CreateParticipantBehavior'; -import LayoutConnectionBehavior from './LayoutConnectionBehavior'; +import GridSnappingAutoPlaceBehavior from './GridSnappingAutoPlaceBehavior'; +import GridSnappingParticipantBehavior from './GridSnappingParticipantBehavior'; +import GridSnappingLayoutConnectionBehavior from './GridSnappingLayoutConnectionBehavior'; export default { __init__: [ 'gridSnappingAutoPlaceBehavior', - 'gridSnappingCreateParticipantBehavior', + 'gridSnappingParticipantBehavior', 'gridSnappingLayoutConnectionBehavior', ], - gridSnappingAutoPlaceBehavior: [ 'type', AutoPlaceBehavior ], - gridSnappingCreateParticipantBehavior: [ 'type', CreateParticipantBehavior ], - gridSnappingLayoutConnectionBehavior: [ 'type', LayoutConnectionBehavior ] + gridSnappingAutoPlaceBehavior: [ 'type', GridSnappingAutoPlaceBehavior ], + gridSnappingParticipantBehavior: [ 'type', GridSnappingParticipantBehavior ], + gridSnappingLayoutConnectionBehavior: [ 'type', GridSnappingLayoutConnectionBehavior ] }; \ No newline at end of file From 8950d425095e70326bc088a898b513f2275969d6 Mon Sep 17 00:00:00 2001 From: Philipp Fromme Date: Mon, 15 Aug 2022 12:46:37 +0200 Subject: [PATCH 064/989] fix(modeling): ensure group min dimensions (#1713) Closes #1705 --- .../modeling/behavior/ResizeBehavior.js | 2 ++ .../modeling/behavior/SpaceToolBehavior.js | 5 +++ .../behavior/SpaceToolBehaviorSpec.group.bpmn | 19 +++++++++++ .../behavior/SpaceToolBehaviorSpec.js | 34 +++++++++++++++++++ 4 files changed, 60 insertions(+) create mode 100644 test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.group.bpmn diff --git a/lib/features/modeling/behavior/ResizeBehavior.js b/lib/features/modeling/behavior/ResizeBehavior.js index e63f91ad11..8c7d7ea36a 100644 --- a/lib/features/modeling/behavior/ResizeBehavior.js +++ b/lib/features/modeling/behavior/ResizeBehavior.js @@ -13,6 +13,8 @@ import { var HIGH_PRIORITY = 1500; +export var GROUP_MIN_DIMENSIONS = { width: 140, height: 120 }; + export var LANE_MIN_DIMENSIONS = { width: 300, height: 60 }; export var PARTICIPANT_MIN_DIMENSIONS = { width: 300, height: 150 }; diff --git a/lib/features/modeling/behavior/SpaceToolBehavior.js b/lib/features/modeling/behavior/SpaceToolBehavior.js index 4949f5bb51..dd0995426d 100644 --- a/lib/features/modeling/behavior/SpaceToolBehavior.js +++ b/lib/features/modeling/behavior/SpaceToolBehavior.js @@ -5,6 +5,7 @@ import { is } from '../../../util/ModelUtil'; import { isExpanded } from '../../../util/DiUtil'; import { + GROUP_MIN_DIMENSIONS, LANE_MIN_DIMENSIONS, PARTICIPANT_MIN_DIMENSIONS, SUB_PROCESS_MIN_DIMENSIONS, @@ -46,6 +47,10 @@ export default function SpaceToolBehavior(eventBus) { if (is(shape, 'bpmn:TextAnnotation')) { minDimensions[ id ] = TEXT_ANNOTATION_MIN_DIMENSIONS; } + + if (is(shape, 'bpmn:Group')) { + minDimensions[ id ] = GROUP_MIN_DIMENSIONS; + } }); return minDimensions; 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..2107b7dda1 100644 --- a/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.js @@ -14,6 +14,7 @@ import { } from '../../../../util/MockEvents'; import { + GROUP_MIN_DIMENSIONS, LANE_MIN_DIMENSIONS, PARTICIPANT_MIN_DIMENSIONS, SUB_PROCESS_MIN_DIMENSIONS @@ -61,6 +62,7 @@ describe('features/modeling - space tool behavior', function() { }); + describe('participant', function() { describe('minimum dimensions', function() { @@ -149,4 +151,36 @@ describe('features/modeling - space tool behavior', function() { }); + + 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 From 066c07c0849d9692d4e1e75d7ab399270ab9687f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 12 Aug 2022 11:19:27 +0200 Subject: [PATCH 065/989] fix(modeling): do not alter attrs passed to `ElementFactory#create` --- lib/features/modeling/ElementFactory.js | 26 ++++++---- .../features/modeling/ElementFactorySpec.js | 47 +++++++++++++++++++ 2 files changed, 65 insertions(+), 8 deletions(-) diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index 195f8a3793..3b97c553c2 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -1,7 +1,8 @@ import { assign, forEach, - isObject + isObject, + omit } from 'min-dash'; import inherits from 'inherits-browser'; @@ -69,7 +70,7 @@ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { var size, translate = this._translate; - attrs = attrs || {}; + attrs = assign({}, attrs || {}); var businessObject = attrs.businessObject, di = attrs.di; @@ -86,6 +87,7 @@ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { if (!isModdleDi(di)) { var diAttrs = assign( + {}, di || {}, { id: businessObject.id + '_di' } ); @@ -106,7 +108,7 @@ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { }, attrs); } - applyAttributes(businessObject, attrs, [ + attrs = applyAttributes(businessObject, attrs, [ 'processRef', 'isInterrupting', 'associationDirection', @@ -114,7 +116,7 @@ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { ]); if (attrs.isExpanded) { - applyAttribute(di, attrs, 'isExpanded'); + attrs = applyAttribute(di, attrs, 'isExpanded'); } if (is(businessObject, 'bpmn:SubProcess')) { @@ -247,14 +249,16 @@ ElementFactory.prototype.createParticipantShape = function(attrs) { * @param {Base} element * @param {Object} attrs (in/out map of attributes) * @param {Array} attributeNames name of attributes to apply + * + * @return {Object} changed attrs */ function applyAttributes(element, attrs, attributeNames) { forEach(attributeNames, function(property) { - if (attrs[property] !== undefined) { - applyAttribute(element, attrs, property); - } + attrs = applyAttribute(element, attrs, property); }); + + return attrs; } /** @@ -264,11 +268,17 @@ function applyAttributes(element, attrs, attributeNames) { * @param {Base} element * @param {Object} attrs (in/out map of attributes) * @param {string} attributeName to apply + * + * @return {Object} changed attrs */ function applyAttribute(element, attrs, attributeName) { + if (attrs[attributeName] === undefined) { + return attrs; + } + element[attributeName] = attrs[attributeName]; - delete attrs[attributeName]; + return omit(attrs, [ attributeName ]); } diff --git a/test/spec/features/modeling/ElementFactorySpec.js b/test/spec/features/modeling/ElementFactorySpec.js index c565621947..fcc8b5aed4 100644 --- a/test/spec/features/modeling/ElementFactorySpec.js +++ b/test/spec/features/modeling/ElementFactorySpec.js @@ -11,6 +11,10 @@ import { is } from '../../../../lib/util/ModelUtil'; +import { + assign +} from 'min-dash'; + describe('features - element factory', function() { @@ -21,6 +25,49 @@ describe('features - element factory', function() { 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) { From d87ccac2be06f010a496e6e031155df79a98e724 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 11 Aug 2022 23:06:27 +0200 Subject: [PATCH 066/989] feat(copy-paste): allow cloning of elements Clone will copy elements in a side-effect free manner, i.e. not perform any wiring. --- lib/features/copy-paste/ModdleCopy.js | 26 +++++++++------ .../features/copy-paste/ModdleCopySpec.js | 32 ++++++++++++++++++- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/lib/features/copy-paste/ModdleCopy.js b/lib/features/copy-paste/ModdleCopy.js index 51e67a7714..0746a23ac3 100644 --- a/lib/features/copy-paste/ModdleCopy.js +++ b/lib/features/copy-paste/ModdleCopy.js @@ -127,10 +127,11 @@ ModdleCopy.$inject = [ * @param {ModdleElement} sourceElement * @param {ModdleElement} targetElement * @param {Array} [propertyNames] + * @param {boolean} clone * * @param {ModdleElement} */ -ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, propertyNames) { +ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, propertyNames, clone) { var self = this; if (propertyNames && !isArray(propertyNames)) { @@ -142,7 +143,8 @@ ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, proper var canCopyProperties = this._eventBus.fire('moddleCopy.canCopyProperties', { propertyNames: propertyNames, sourceElement: sourceElement, - targetElement: targetElement + targetElement: targetElement, + clone: clone }); if (canCopyProperties === false) { @@ -161,7 +163,7 @@ ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, proper sourceProperty = sourceElement.get(propertyName); } - var copiedProperty = self.copyProperty(sourceProperty, targetElement, propertyName); + var copiedProperty = self.copyProperty(sourceProperty, targetElement, propertyName, clone); var canSetProperty = self._eventBus.fire('moddleCopy.canSetCopiedProperty', { parent: targetElement, @@ -187,17 +189,19 @@ ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, proper * @param {*} property * @param {ModdleElement} parent * @param {string} propertyName + * @param {boolean} clone * * @returns {*} */ -ModdleCopy.prototype.copyProperty = function(property, parent, propertyName) { +ModdleCopy.prototype.copyProperty = function(property, parent, propertyName, clone) { var self = this; // allow others to copy property var copiedProperty = this._eventBus.fire('moddleCopy.canCopyProperty', { parent: parent, property: property, - propertyName: propertyName + propertyName: propertyName, + clone: clone }); // return if copying is NOT allowed @@ -222,7 +226,7 @@ ModdleCopy.prototype.copyProperty = function(property, parent, propertyName) { // copy id if (propertyDescriptor.isId) { - return this._copyId(property, parent); + return this._copyId(property, parent, clone); } // copy arrays @@ -230,7 +234,7 @@ ModdleCopy.prototype.copyProperty = function(property, parent, propertyName) { return reduce(property, function(childProperties, childProperty) { // recursion - copiedProperty = self.copyProperty(childProperty, parent, propertyName); + copiedProperty = self.copyProperty(childProperty, parent, propertyName, clone); // copying might NOT be allowed if (copiedProperty) { @@ -252,7 +256,7 @@ ModdleCopy.prototype.copyProperty = function(property, parent, propertyName) { copiedProperty.$parent = parent; // recursion - copiedProperty = self.copyElement(property, copiedProperty); + copiedProperty = self.copyElement(property, copiedProperty, null, clone); return copiedProperty; } @@ -261,7 +265,11 @@ ModdleCopy.prototype.copyProperty = function(property, parent, propertyName) { return property; }; -ModdleCopy.prototype._copyId = function(id, element) { +ModdleCopy.prototype._copyId = function(id, element, clone) { + + if (clone) { + return id; + } // disallow if already taken if (this._moddle.ids.assigned(id)) { diff --git a/test/spec/features/copy-paste/ModdleCopySpec.js b/test/spec/features/copy-paste/ModdleCopySpec.js index 4fa2a0c174..c451ed0bba 100644 --- a/test/spec/features/copy-paste/ModdleCopySpec.js +++ b/test/spec/features/copy-paste/ModdleCopySpec.js @@ -727,6 +727,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); + })); + }); @@ -804,7 +831,10 @@ describe('features/copy-paste/ModdleCopy', function() { }); // when - var newElement = moddleCopy.copyElement(customElement, moddle.create('custom:CustomSendElement')); + var newElement = moddleCopy.copyElement( + customElement, + moddle.create('custom:CustomSendElement') + ); // then expect(newElement.paths).to.have.length(3); From ab6db7b073d7be511468cb3bd9e966ba4a7c6b97 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 11 Aug 2022 15:44:33 +0200 Subject: [PATCH 067/989] feat(copy-paste): clone element on copy Ensures copy is unaffected by edit operations after copy. Closes https://github.com/bpmn-io/bpmn-js/issues/798 --- lib/features/copy-paste/BpmnCopyPaste.js | 125 +++++++++--------- lib/features/copy-paste/ModdleCopy.js | 10 +- .../features/copy-paste/BpmnCopyPasteSpec.js | 106 ++++++++------- .../copy-paste/data-associations.bpmn | 4 +- test/spec/features/replace/BpmnReplaceSpec.js | 2 +- 5 files changed, 128 insertions(+), 119 deletions(-) diff --git a/lib/features/copy-paste/BpmnCopyPaste.js b/lib/features/copy-paste/BpmnCopyPaste.js index 99c0730193..911abfe9f7 100644 --- a/lib/features/copy-paste/BpmnCopyPaste.js +++ b/lib/features/copy-paste/BpmnCopyPaste.js @@ -24,64 +24,41 @@ function copyProperties(source, target, properties) { }); } -function removeProperties(element, properties) { - if (!isArray(properties)) { - properties = [ properties ]; - } - - forEach(properties, function(property) { - if (element[property]) { - delete element[property]; - } - }); -} - var LOW_PRIORITY = 750; export default function BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) { - eventBus.on('copyPaste.copyElement', LOW_PRIORITY, function(context) { - var descriptor = context.descriptor, - element = context.element; - - var businessObject = descriptor.oldBusinessObject = getBusinessObject(element); - var di = descriptor.oldDi = getDi(element); - - descriptor.type = element.type; + function copy(bo, clone) { + var targetBo = bpmnFactory.create(bo.$type); - copyProperties(businessObject, descriptor, 'name'); + return moddleCopy.copyElement(bo, targetBo, null, clone); + } - copyProperties(di, descriptor, 'isExpanded'); + eventBus.on('copyPaste.copyElement', LOW_PRIORITY, function(context) { + var descriptor = context.descriptor, + element = context.element, + businessObject = getBusinessObject(element); - if (isLabel(descriptor)) { + // do not copy business object + di for labels; + // will be pulled from the referenced label target + if (isLabel(element)) { return descriptor; } + var businessObjectCopy = descriptor.businessObject = copy(businessObject, true); + var diCopy = descriptor.di = copy(getDi(element), true); + diCopy.bpmnElement = businessObjectCopy; + + copyProperties(businessObjectCopy, descriptor, 'name'); + copyProperties(diCopy, descriptor, 'isExpanded'); + // default sequence flow if (businessObject.default) { descriptor.default = businessObject.default.id; } }); - eventBus.on('moddleCopy.canCopyProperty', function(context) { - var parent = context.parent, - property = context.property, - propertyName = context.propertyName, - bpmnProcess; - - if ( - propertyName === 'processRef' && - is(parent, 'bpmn:Participant') && - is(property, 'bpmn:Process') - ) { - bpmnProcess = bpmnFactory.create('bpmn:Process'); - - // return copy of process - return moddleCopy.copyElement(property, bpmnProcess); - } - }); - var references; function resolveReferences(descriptor, cache) { @@ -125,11 +102,10 @@ export default function BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) { eventBus.on('copyPaste.pasteElement', function(context) { var cache = context.cache, descriptor = context.descriptor, - oldBusinessObject = descriptor.oldBusinessObject, - oldDi = descriptor.oldDi, - newBusinessObject, newDi; + businessObject = descriptor.businessObject, + di = descriptor.di; - // do NOT copy business object if external label + // wire existing di + businessObject for external label if (isLabel(descriptor)) { descriptor.businessObject = getBusinessObject(cache[ descriptor.labelTarget ]); descriptor.di = getDi(cache[ descriptor.labelTarget ]); @@ -137,30 +113,53 @@ export default function BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) { return; } - newBusinessObject = bpmnFactory.create(oldBusinessObject.$type); - - descriptor.businessObject = moddleCopy.copyElement( - oldBusinessObject, - newBusinessObject - ); + businessObject = descriptor.businessObject = copy(businessObject); - newDi = bpmnFactory.create(oldDi.$type); - newDi.bpmnElement = newBusinessObject; + di = descriptor.di = copy(di); + di.bpmnElement = businessObject; - descriptor.di = moddleCopy.copyElement( - oldDi, - newDi - ); - - // resolve references e.g. default sequence flow - resolveReferences(descriptor, cache); - - copyProperties(descriptor, newBusinessObject, [ + copyProperties(descriptor, businessObject, [ 'isExpanded', 'name' ]); - removeProperties(descriptor, 'oldBusinessObject'); + descriptor.type = businessObject.$type; + }); + + // copy + paste processRef with participant + + eventBus.on('copyPaste.copyElement', LOW_PRIORITY, function(context) { + var descriptor = context.descriptor, + element = context.element; + + if (!is(element, 'bpmn:Participant')) { + return; + } + + var participantBo = getBusinessObject(element); + + if (participantBo.processRef) { + descriptor.processRef = copy(participantBo.processRef, true); + } + }); + + eventBus.on('copyPaste.pasteElement', function(context) { + var descriptor = context.descriptor, + processRef = descriptor.processRef; + + if (processRef) { + descriptor.processRef = copy(processRef); + } + }); + + // resolve references + + eventBus.on('copyPaste.pasteElement', LOW_PRIORITY, function(context) { + var cache = context.cache, + descriptor = context.descriptor; + + // resolve references e.g. default sequence flow + resolveReferences(descriptor, cache); }); } diff --git a/lib/features/copy-paste/ModdleCopy.js b/lib/features/copy-paste/ModdleCopy.js index 0746a23ac3..69f997ff4b 100644 --- a/lib/features/copy-paste/ModdleCopy.js +++ b/lib/features/copy-paste/ModdleCopy.js @@ -165,6 +165,10 @@ ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, proper var copiedProperty = self.copyProperty(sourceProperty, targetElement, propertyName, clone); + if (!isDefined(copiedProperty)) { + return; + } + var canSetProperty = self._eventBus.fire('moddleCopy.canSetCopiedProperty', { parent: targetElement, property: copiedProperty, @@ -175,9 +179,9 @@ ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, proper return; } - if (isDefined(copiedProperty)) { - targetElement.set(propertyName, copiedProperty); - } + // TODO(nikku): unclaim old IDs if ID property is copied over + // this._moddle.getPropertyDescriptor(parent, propertyName) + targetElement.set(propertyName, copiedProperty); }); return targetElement; diff --git a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js index d3c6686c67..7b12ee12d4 100644 --- a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js +++ b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js @@ -140,9 +140,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 +148,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 +170,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; })); }); @@ -739,20 +716,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 +759,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]); } )); 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/replace/BpmnReplaceSpec.js b/test/spec/features/replace/BpmnReplaceSpec.js index b9f7d345c0..0c16001aa1 100644 --- a/test/spec/features/replace/BpmnReplaceSpec.js +++ b/test/spec/features/replace/BpmnReplaceSpec.js @@ -1191,7 +1191,7 @@ describe('features/replace - bpmn replace', function() { })[0]; // then - expect(startEventAfter.businessObject.eventDefinitions).to.be.undefined; + expect(startEventAfter.businessObject.eventDefinitions).not.to.exist; }) ); From 7bf1f94dd495392c5736d6e4c377e30984387a2d Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 12:20:49 +0200 Subject: [PATCH 068/989] chore(copy-paste): resolve references without global state Simply re-use the existing cache to retrieve a references entry. Global state, while it may work here, is an anti pattern in our code base. --- lib/features/copy-paste/BpmnCopyPaste.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/features/copy-paste/BpmnCopyPaste.js b/lib/features/copy-paste/BpmnCopyPaste.js index 911abfe9f7..3bd6cbab78 100644 --- a/lib/features/copy-paste/BpmnCopyPaste.js +++ b/lib/features/copy-paste/BpmnCopyPaste.js @@ -59,9 +59,17 @@ export default function BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) { } }); - var references; + var referencesKey = '-bpmn-js-refs'; - function resolveReferences(descriptor, cache) { + function getReferences(cache) { + return (cache[referencesKey] = cache[referencesKey] || {}); + } + + function setReferences(cache, references) { + cache[referencesKey] = references; + } + + function resolveReferences(descriptor, cache, references) { var businessObject = getBusinessObject(descriptor); // default sequence flows @@ -81,7 +89,7 @@ export default function BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) { getBusinessObject(descriptor).attachedToRef = getBusinessObject(cache[ descriptor.host ]); } - references = omit(references, reduce(references, function(array, reference, key) { + return omit(references, reduce(references, function(array, reference, key) { var element = reference.element, property = reference.property; @@ -95,10 +103,6 @@ export default function BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) { }, [])); } - eventBus.on('copyPaste.pasteElements', function() { - references = {}; - }); - eventBus.on('copyPaste.pasteElement', function(context) { var cache = context.cache, descriptor = context.descriptor, @@ -159,7 +163,10 @@ export default function BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) { descriptor = context.descriptor; // resolve references e.g. default sequence flow - resolveReferences(descriptor, cache); + setReferences( + cache, + resolveReferences(descriptor, cache, getReferences(cache)) + ); }); } From 66c3612eb65aeec8f748e4896c6cd735c91b819f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 14:29:29 +0200 Subject: [PATCH 069/989] feat(copy-paste): implement group copy in a safe manner * properly copy category and category value * create category value when creating group label --- lib/features/copy-paste/ModdleCopy.js | 3 +- .../label-editing/LabelEditingProvider.js | 22 -- .../modeling/behavior/GroupBehavior.js | 298 +++++++++++------ .../modeling/behavior/util/CategoryUtil.js | 79 ++++- .../label-editing/LabelEditingProviderSpec.js | 2 +- .../modeling/behavior/GroupBehaviorSpec.js | 312 +++++++++--------- 6 files changed, 427 insertions(+), 289 deletions(-) diff --git a/lib/features/copy-paste/ModdleCopy.js b/lib/features/copy-paste/ModdleCopy.js index 69f997ff4b..12b8811314 100644 --- a/lib/features/copy-paste/ModdleCopy.js +++ b/lib/features/copy-paste/ModdleCopy.js @@ -18,7 +18,8 @@ var DISALLOWED_PROPERTIES = [ 'flowElements', 'lanes', 'incoming', - 'outgoing' + 'outgoing', + 'categoryValue' ]; /** diff --git a/lib/features/label-editing/LabelEditingProvider.js b/lib/features/label-editing/LabelEditingProvider.js index 75bfc52dd1..f6553e295a 100644 --- a/lib/features/label-editing/LabelEditingProvider.js +++ b/lib/features/label-editing/LabelEditingProvider.js @@ -7,14 +7,9 @@ import { } from './LabelUtil'; import { - getBusinessObject, is } from '../../util/ModelUtil'; -import { - createCategoryValue -} from '../modeling/behavior/util/CategoryUtil'; - import { isAny } from '../modeling/util/ModelingUtil'; import { isExpanded } from '../../util/DiUtil'; @@ -399,23 +394,6 @@ LabelEditingProvider.prototype.update = function( }; } - if (is(element, 'bpmn:Group')) { - - var businessObject = getBusinessObject(element); - - // initialize categoryValue if not existing - if (!businessObject.categoryValueRef) { - - var rootElement = this._canvas.getRootElement(), - definitions = getBusinessObject(rootElement).$parent; - - var categoryValue = createCategoryValue(definitions, this._bpmnFactory); - - getBusinessObject(element).categoryValueRef = categoryValue; - } - - } - if (isEmptyText(newLabel)) { newLabel = null; } diff --git a/lib/features/modeling/behavior/GroupBehavior.js b/lib/features/modeling/behavior/GroupBehavior.js index 3067f9b39b..0b380d382e 100644 --- a/lib/features/modeling/behavior/GroupBehavior.js +++ b/lib/features/modeling/behavior/GroupBehavior.js @@ -2,21 +2,21 @@ import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; -import { - add as collectionAdd, - remove as collectionRemove -} from 'diagram-js/lib/util/Collections'; - import { getBusinessObject, is } from '../../../util/ModelUtil'; import { - createCategoryValue + createCategory, + createCategoryValue, + linkCategoryValue, + unlinkCategory, + unlinkCategoryValue } from './util/CategoryUtil'; -var HIGH_PRIORITY = 2000; + +var LOWER_PRIORITY = 770; /** @@ -33,156 +33,268 @@ export default function GroupBehavior( injector.invoke(CommandInterceptor, this); /** - * Removes a referenced category value for a given group shape + * Returns all group element in the current registry * - * @param {djs.model.Shape} shape + * @return {Array} a list of group shapes */ - function removeReferencedCategoryValue(shape) { - - var businessObject = getBusinessObject(shape), - categoryValue = businessObject.categoryValueRef; - - if (!categoryValue) { - return; - } - - var category = categoryValue.$parent; - - if (!categoryValue) { - return; - } - - collectionRemove(category.categoryValue, categoryValue); - - // cleanup category if it is empty - if (category && !category.categoryValue.length) { - removeCategory(category); - } + function getGroupElements() { + return elementRegistry.filter(function(e) { + return is(e, 'bpmn:Group'); + }); } /** - * Removes a given category from the definitions + * Returns true if given category is referenced in one of the given elements * - * @param {ModdleElement} category + * @param { djs.model.Element[] } elements + * @param { ModdleElement } category + * + * @return { boolean } */ - function removeCategory(category) { + function isReferencedCategory(elements, category) { + return elements.some(function(element) { + var businessObject = getBusinessObject(element); - var definitions = bpmnjs.getDefinitions(); + var _category = businessObject.categoryValueRef && businessObject.categoryValueRef.$parent; - collectionRemove(definitions.get('rootElements'), category); + return _category === category; + }); } /** - * Returns all group element in the current registry + * Returns true if given categoryValue is referenced in one of the given elements * - * @return {Array} a list of group shapes + * @param { djs.model.Element[] } elements + * @param { ModdleElement } categoryValue + * + * @return { boolean } */ - function getGroupElements() { - return elementRegistry.filter(function(e) { - return is(e, 'bpmn:Group'); + function isReferencedCategoryValue(elements, categoryValue) { + return elements.some(function(element) { + var businessObject = getBusinessObject(element); + + return businessObject.categoryValueRef === categoryValue; }); } /** - * Returns true if given categoryValue is referenced in one of the given elements + * Remove category value unless it is still referenced * - * @param {Array} elements * @param {ModdleElement} categoryValue - * @return {boolean} + * @param {ModdleElement} category + * @param {ModdleElement} businessObject */ - function isReferenced(elements, categoryValue) { - return elements.some(function(e) { - - var businessObject = getBusinessObject(e); + function removeCategoryValue(categoryValue, category, businessObject) { - return businessObject.categoryValueRef - && businessObject.categoryValueRef === categoryValue; + var groups = getGroupElements().filter(function(element) { + return element.businessObject !== businessObject; }); + + if (category && !isReferencedCategory(groups, category)) { + unlinkCategory(category); + } + + if (categoryValue && !isReferencedCategoryValue(groups, categoryValue)) { + unlinkCategoryValue(categoryValue); + } } /** - * remove referenced category + value when group was deleted + * Add category value + * + * @param {ModdleElement} categoryValue + * @param {ModdleElement} category */ - this.executed('shape.delete', function(event) { + function addCategoryValue(categoryValue, category) { + return linkCategoryValue(categoryValue, category, bpmnjs.getDefinitions()); + } - var context = event.context, - shape = context.shape; + function setCategoryValue(element, context) { + var businessObject = getBusinessObject(element), + categoryValue = businessObject.categoryValueRef; - if (is(shape, 'bpmn:Group')) { + if (!categoryValue) { + categoryValue = + businessObject.categoryValueRef = + context.categoryValue = ( + context.categoryValue || createCategoryValue(bpmnFactory) + ); + } - var businessObject = getBusinessObject(shape), - categoryValueRef = businessObject.categoryValueRef, - groupElements = getGroupElements(); + var category = categoryValue.$parent; - if (!isReferenced(groupElements, categoryValueRef)) { - removeReferencedCategoryValue(shape); - } + if (!category) { + category = + categoryValue.$parent = + context.category = ( + context.category || createCategory(bpmnFactory) + ); } - }); - /** - * re-attach removed category - */ - this.reverted('shape.delete', function(event) { + addCategoryValue(categoryValue, category, bpmnjs.getDefinitions()); + } + + function unsetCategoryValue(element, context) { + var category = context.category, + categoryValue = context.categoryValue, + businessObject = getBusinessObject(element); + + if (categoryValue) { + businessObject.categoryValueRef = null; + + removeCategoryValue(categoryValue, category, businessObject); + } else { + removeCategoryValue(null, businessObject.categoryValueRef.$parent, businessObject); + } + } + + // ensure category + value exist before label editing + + this.execute('label.create', function(event) { var context = event.context, - shape = context.shape; + labelTarget = context.labelTarget; + + if (!is(labelTarget, 'bpmn:Group')) { + return; + } - if (is(shape, 'bpmn:Group')) { + setCategoryValue(labelTarget, context); + }); - var businessObject = getBusinessObject(shape), - categoryValueRef = businessObject.categoryValueRef, - definitions = bpmnjs.getDefinitions(), - category = categoryValueRef ? categoryValueRef.$parent : null; + this.revert('label.create', function(event) { + var context = event.context, + labelTarget = context.labelTarget; - collectionAdd(category.get('categoryValue'), categoryValueRef); - collectionAdd(definitions.get('rootElements'), category); + if (!is(labelTarget, 'bpmn:Group')) { + return; } + + unsetCategoryValue(labelTarget, context); }); - /** - * create new category + value when group was created - */ - this.execute('shape.create', function(event) { + + // remove referenced category + value when group was deleted + + this.execute('shape.delete', function(event) { + var context = event.context, shape = context.shape, businessObject = getBusinessObject(shape); - if (is(businessObject, 'bpmn:Group') && !businessObject.categoryValueRef) { + if (!is(shape, 'bpmn:Group') || shape.labelTarget) { + return; + } + + var categoryValue = context.categoryValue = businessObject.categoryValueRef, + category; + + if (categoryValue) { + category = context.category = categoryValue.$parent; + + removeCategoryValue(categoryValue, category, businessObject); + + businessObject.categoryValueRef = null; + } + }); + + this.reverted('shape.delete', function(event) { + + var context = event.context, + shape = context.shape; - var definitions = bpmnjs.getDefinitions(), - categoryValue = createCategoryValue(definitions, bpmnFactory); + if (!is(shape, 'bpmn:Group') || shape.labelTarget) { + return; + } + + var category = context.category, + categoryValue = context.categoryValue, + businessObject = getBusinessObject(shape); - // link the reference to the Group + if (categoryValue) { businessObject.categoryValueRef = categoryValue; + + addCategoryValue(categoryValue, category); } }); - this.revert('shape.create', function(event) { + // create new category + value when group was created + + this.execute('shape.create', function(event) { + var context = event.context, + shape = context.shape; + + if (!is(shape, 'bpmn:Group') || shape.labelTarget) { + return; + } + + if (getBusinessObject(shape).categoryValueRef) { + setCategoryValue(shape, context); + } + }); + + this.reverted('shape.create', function(event) { var context = event.context, shape = context.shape; - if (is(shape, 'bpmn:Group')) { - removeReferencedCategoryValue(shape); + if (!is(shape, 'bpmn:Group') || shape.labelTarget) { + return; + } + + if (getBusinessObject(shape).categoryValueRef) { + unsetCategoryValue(shape, context); + } + }); + + + // copy + paste categoryValueRef with group + + function copy(bo, clone) { + var targetBo = bpmnFactory.create(bo.$type); + + return moddleCopy.copyElement(bo, targetBo, null, clone); + } + + eventBus.on('copyPaste.copyElement', LOWER_PRIORITY, function(context) { + var descriptor = context.descriptor, + element = context.element; + + if (!is(element, 'bpmn:Group')) { + return; + } + + var groupBo = getBusinessObject(element); + + if (groupBo.categoryValueRef) { - delete getBusinessObject(shape).categoryValueRef; + var categoryValue = groupBo.categoryValueRef; + descriptor.categoryValue = copy(categoryValue, true); + + if (categoryValue.$parent) { + descriptor.category = copy(categoryValue.$parent, true); + } } }); - // copy bpmn:CategoryValue when copying element - eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) { - var property = context.property, - categoryValue; + eventBus.on('copyPaste.pasteElement', LOWER_PRIORITY, function(context) { + var descriptor = context.descriptor, + businessObject = descriptor.businessObject, + categoryValue = descriptor.categoryValue, + category = descriptor.category; - if (is(property, 'bpmn:CategoryValue')) { - categoryValue = createCategoryValue(bpmnjs.getDefinitions(), bpmnFactory); + if (categoryValue) { + categoryValue = businessObject.categoryValueRef = copy(categoryValue); + } - // return copy of category - return moddleCopy.copyElement(property, categoryValue); + if (category) { + categoryValue.$parent = copy(category); } + + delete descriptor.category; + delete descriptor.categoryValue; }); } diff --git a/lib/features/modeling/behavior/util/CategoryUtil.js b/lib/features/modeling/behavior/util/CategoryUtil.js index 4d0b7c0935..c5abc30606 100644 --- a/lib/features/modeling/behavior/util/CategoryUtil.js +++ b/lib/features/modeling/behavior/util/CategoryUtil.js @@ -1,30 +1,83 @@ import { - add as collectionAdd + add as collectionAdd, + remove as collectionRemove } from 'diagram-js/lib/util/Collections'; -import { - getBusinessObject -} from '../../../../util/ModelUtil'; /** * Creates a new bpmn:CategoryValue inside a new bpmn:Category * - * @param {ModdleElement} definitions * @param {BpmnFactory} bpmnFactory * * @return {ModdleElement} categoryValue. */ -export function createCategoryValue(definitions, bpmnFactory) { - var categoryValue = bpmnFactory.create('bpmn:CategoryValue'), - category = bpmnFactory.create('bpmn:Category', { - categoryValue: [ categoryValue ] - }); +export function createCategory(bpmnFactory) { + return bpmnFactory.create('bpmn:Category'); +} + +/** + * Creates a new bpmn:CategoryValue inside a new bpmn:Category + * + * @param {BpmnFactory} bpmnFactory + * + * @return {ModdleElement} categoryValue. + */ +export function createCategoryValue(bpmnFactory) { + return bpmnFactory.create('bpmn:CategoryValue'); +} + +/** + * Adds category value to definitions + * + * @param {ModdleElement} categoryValue + * @param {ModdleElement} category + * @param {ModdleElement} definitions + * + * @return {ModdleElement} categoryValue + */ +export function linkCategoryValue(categoryValue, category, definitions) { + collectionAdd(category.get('categoryValue'), categoryValue); + categoryValue.$parent = category; - // add to correct place collectionAdd(definitions.get('rootElements'), category); - getBusinessObject(category).$parent = definitions; - getBusinessObject(categoryValue).$parent = category; + category.$parent = definitions; return categoryValue; +} + +/** + * Unlink category value from parent + * + * @param {ModdleElement} categoryValue + * + * @return {ModdleElement} categoryValue + */ +export function unlinkCategoryValue(categoryValue) { + var category = categoryValue.$parent; + + if (category) { + collectionRemove(category.get('categoryValue'), categoryValue); + categoryValue.$parent = null; + } + + return categoryValue; +} + +/** + * Unlink category from parent + * + * @param {ModdleElement} category + * @param {ModdleElement} definitions + * + * @return {ModdleElement} categoryValue + */ +export function unlinkCategory(category) { + var definitions = category.$parent; + + if (definitions) { + collectionRemove(definitions.get('rootElements'), category); + category.$parent = null; + } + return category; } \ No newline at end of file diff --git a/test/spec/features/label-editing/LabelEditingProviderSpec.js b/test/spec/features/label-editing/LabelEditingProviderSpec.js index 37aaef0a5d..b2f21d126c 100644 --- a/test/spec/features/label-editing/LabelEditingProviderSpec.js +++ b/test/spec/features/label-editing/LabelEditingProviderSpec.js @@ -582,7 +582,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 diff --git a/test/spec/features/modeling/behavior/GroupBehaviorSpec.js b/test/spec/features/modeling/behavior/GroupBehaviorSpec.js index b6d3bf119f..92b071eb16 100644 --- a/test/spec/features/modeling/behavior/GroupBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/GroupBehaviorSpec.js @@ -8,10 +8,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 +22,16 @@ describe('features/modeling/behavior - groups', function() { coreModule, copyPasteModule, bpmnCopyPasteModule, - modelingModule ]; + modelingModule + ]; var processDiagramXML = require('./GroupBehaviorSpec.bpmn'); - beforeEach(bootstrapModeler(processDiagramXML, { modules: testModules.concat(modelingModule) })); - - function expectIncludedOrNot(collection, object, expected) { - var isIncluded = collectionIndexOf(collection, object) >= 0; + beforeEach(bootstrapModeler(processDiagramXML, { + modules: testModules.concat(modelingModule) + })); - 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; + var group = modeling.createShape({ type: 'bpmn:Group' }, { x: 100, y: 100 }, root), + groupBo = getBusinessObject(group); - // then - expect(categoryValueRef).to.exist; - expect(category).to.exist; - - 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,92 @@ 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(); - var categoryValueRef = getBusinessObject(groupShape).categoryValueRef, - category = categoryValueRef.$parent; + // then + expect(category.get('categoryValue')).not.to.include(categoryValue); + expect(definitions.get('rootElements')).not.to.include(category); + })); + + }); + + }); + + + 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 - expectIncludedOrNot( - category.get('categoryValue'), - categoryValueRef, - false - ); - - expectIncludedOrNot( - definitions.get('rootElements'), - category, - false - ); + 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 + expect(groupBo.categoryValueRef).to.exist; + expect(groupBo.categoryValueRef.value).to.eql('Foo bar'); + + expect(groupBo.categoryValueRef.$parent).to.exist; })); }); From 0cc90ee3027bbc4ca7162f5049e972ecb62a0aef Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 13:10:15 +0200 Subject: [PATCH 070/989] test(modeling): verify deletion of group without categoryValue --- .../modeling/behavior/GroupBehaviorSpec.bpmn | 4 ++ .../modeling/behavior/GroupBehaviorSpec.js | 52 ++++++++++++++++++- 2 files changed, 55 insertions(+), 1 deletion(-) 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 92b071eb16..04fc4db0ef 100644 --- a/test/spec/features/modeling/behavior/GroupBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/GroupBehaviorSpec.js @@ -25,7 +25,6 @@ describe('features/modeling/behavior - groups', function() { modelingModule ]; - var processDiagramXML = require('./GroupBehaviorSpec.bpmn'); beforeEach(bootstrapModeler(processDiagramXML, { @@ -334,6 +333,57 @@ describe('features/modeling/behavior - groups', function() { }); + + 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(); + + // then + expect(groupBo.categoryValueRef).not.to.exist; + })); + + }); + }); From 36db64e0e6662976f1e5700807b0636593c48a37 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 12:22:32 +0200 Subject: [PATCH 071/989] fix(copy-paste): don't blindly copy root elements This causes unintended side-effects, for example copies `processRef` with every participant. On top actual root element copy is being implemented via `RootElementReferenceBehavior`. --- .../behavior/BoundaryEventBehavior.js | 17 +----------- .../features/copy-paste/ModdleCopySpec.js | 27 +++++++++++++++---- .../behavior/BoundaryEventBehaviorSpec.js | 15 ++++++----- 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/lib/features/modeling/behavior/BoundaryEventBehavior.js b/lib/features/modeling/behavior/BoundaryEventBehavior.js index 4a07408983..26ef21f46d 100644 --- a/lib/features/modeling/behavior/BoundaryEventBehavior.js +++ b/lib/features/modeling/behavior/BoundaryEventBehavior.js @@ -9,13 +9,11 @@ import { forEach } from 'min-dash'; -var HIGH_PRIORITY = 2000; - /** * BPMN specific boundary event behavior */ -export default function BoundaryEventBehavior(eventBus, moddle, modeling) { +export default function BoundaryEventBehavior(eventBus, modeling) { CommandInterceptor.call(this, eventBus); @@ -60,23 +58,10 @@ export default function BoundaryEventBehavior(eventBus, moddle, modeling) { } }); - // copy reference to root element on replace - eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) { - var parent = context.parent, - property = context.property, - propertyName = context.propertyName; - - var propertyDescriptor = moddle.getPropertyDescriptor(parent, propertyName); - - if (propertyDescriptor && propertyDescriptor.isReference && is(property, 'bpmn:RootElement')) { - parent.set(propertyName, property); - } - }); } BoundaryEventBehavior.$inject = [ 'eventBus', - 'moddle', 'modeling' ]; diff --git a/test/spec/features/copy-paste/ModdleCopySpec.js b/test/spec/features/copy-paste/ModdleCopySpec.js index c451ed0bba..df1bfff33c 100644 --- a/test/spec/features/copy-paste/ModdleCopySpec.js +++ b/test/spec/features/copy-paste/ModdleCopySpec.js @@ -133,19 +133,36 @@ describe('features/copy-paste/ModdleCopy', function() { })); - it('should NOT copy references', inject(function(moddle, moddleCopy) { + it('should NOT copy ', 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; })); diff --git a/test/spec/features/modeling/behavior/BoundaryEventBehaviorSpec.js b/test/spec/features/modeling/behavior/BoundaryEventBehaviorSpec.js index 29cdff48dd..cbf566b52b 100644 --- a/test/spec/features/modeling/behavior/BoundaryEventBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/BoundaryEventBehaviorSpec.js @@ -18,7 +18,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 +64,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() { - 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 +89,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 +110,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 +131,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'), @@ -156,7 +156,7 @@ describe('features/modeling/behavior - boundary event', function() { it('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 +182,7 @@ describe('features/modeling/behavior - boundary event', function() { }); + // helpers ////////// function getReferencedRootElement(element, propertyName) { From 8d66d08e2a763b7570d915525760d6df64cc57ad Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 12:22:46 +0200 Subject: [PATCH 072/989] chore(modeling): add TODO --- lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js b/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js index 023f13ca27..f3f7649239 100644 --- a/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js +++ b/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js @@ -25,6 +25,9 @@ UpdateModdlePropertiesHandler.prototype.execute = function(context) { throw new Error(' required'); } + // TODO(nikku): we need to ensure that ID properties + // are properly registered / unregistered via + // this._moddle.ids.assigned(id) var changed = context.changed || this.getVisualReferences(moddleElement).concat(element); var oldProperties = context.oldProperties || getModdleProperties(moddleElement, keys(properties)); From 9f23231c1a402ce18a8ee7310c22fc97e8656cce Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 18:32:07 +0200 Subject: [PATCH 073/989] test(copy-paste): verify collapsed sub-process paste --- .../features/copy-paste/BpmnCopyPasteSpec.js | 54 ++++++++++++++++++- .../copy-paste/collapsed-subprocess.bpmn | 34 ++++++++++++ 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 test/spec/features/copy-paste/collapsed-subprocess.bpmn diff --git a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js index 7b12ee12d4..a21d948e67 100644 --- a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js +++ b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js @@ -45,7 +45,8 @@ 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'); describe('basic diagram', function() { @@ -863,6 +864,57 @@ describe('features/copy-paste', 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'; + }); + + expect(escalations).to.have.length(1); + } + )); + + }); + + describe('complex', function() { // TODO(nikku): drop once legacy PhantomJS is dropped 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From e6fc13a6d2602554ec2a17d4fe2ccde55ff7a464 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 18:32:26 +0200 Subject: [PATCH 074/989] test(copy-paste): verify new business object created on paste --- test/spec/features/copy-paste/BpmnCopyPasteSpec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js index a21d948e67..533e17d2d5 100644 --- a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js +++ b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js @@ -215,6 +215,7 @@ describe('features/copy-paste', function() { }); expect(subProcesses[0].id).not.to.equal(subProcesses[1].id); + expect(subProcesses[0].businessObject).not.to.equal(subProcesses[1].businessObject); })); From 1ca6c6542156644a77f662b54c2ffb45e4dbcfe2 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 21:53:04 +0200 Subject: [PATCH 075/989] fix(copy-paste): only claim existing IDs --- lib/features/copy-paste/ModdleCopy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/features/copy-paste/ModdleCopy.js b/lib/features/copy-paste/ModdleCopy.js index 12b8811314..e310498576 100644 --- a/lib/features/copy-paste/ModdleCopy.js +++ b/lib/features/copy-paste/ModdleCopy.js @@ -231,7 +231,7 @@ ModdleCopy.prototype.copyProperty = function(property, parent, propertyName, clo // copy id if (propertyDescriptor.isId) { - return this._copyId(property, parent, clone); + return property && this._copyId(property, parent, clone); } // copy arrays From f3a20e560367d940b72e19d5835cb4bc58d3726d Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 22:38:36 +0200 Subject: [PATCH 076/989] fix(copy-paste): don't attach for labels --- lib/features/modeling/behavior/GroupBehavior.js | 2 +- lib/features/modeling/behavior/RootElementReferenceBehavior.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/features/modeling/behavior/GroupBehavior.js b/lib/features/modeling/behavior/GroupBehavior.js index 0b380d382e..c0508a7492 100644 --- a/lib/features/modeling/behavior/GroupBehavior.js +++ b/lib/features/modeling/behavior/GroupBehavior.js @@ -261,7 +261,7 @@ export default function GroupBehavior( var descriptor = context.descriptor, element = context.element; - if (!is(element, 'bpmn:Group')) { + if (!is(element, 'bpmn:Group') || element.labelTarget) { return; } diff --git a/lib/features/modeling/behavior/RootElementReferenceBehavior.js b/lib/features/modeling/behavior/RootElementReferenceBehavior.js index 3ff5500df9..56fda75efd 100644 --- a/lib/features/modeling/behavior/RootElementReferenceBehavior.js +++ b/lib/features/modeling/behavior/RootElementReferenceBehavior.js @@ -125,7 +125,7 @@ export default function RootElementReferenceBehavior( var descriptor = context.descriptor, element = context.element; - if (!canHaveRootElementReference(element)) { + if (element.labelTarget || !canHaveRootElementReference(element)) { return; } From 8bdc9a43a977982bd93049eca5d6e642a21a82e4 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 22:40:04 +0200 Subject: [PATCH 077/989] fix(modeling): don't attach `referencedRootElement` on paste --- .../behavior/RootElementReferenceBehavior.js | 13 ++++++------- .../behavior/RootElementReferenceBehaviorSpec.js | 6 ++++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/features/modeling/behavior/RootElementReferenceBehavior.js b/lib/features/modeling/behavior/RootElementReferenceBehavior.js index 56fda75efd..01e3b7c270 100644 --- a/lib/features/modeling/behavior/RootElementReferenceBehavior.js +++ b/lib/features/modeling/behavior/RootElementReferenceBehavior.js @@ -133,19 +133,16 @@ export default function RootElementReferenceBehavior( rootElement = getRootElement(businessObject); if (rootElement) { + + // TODO(nikku): clone on copy descriptor.referencedRootElement = rootElement; } }); eventBus.on('copyPaste.pasteElement', LOW_PRIORITY, function(context) { var descriptor = context.descriptor, - businessObject = descriptor.businessObject; - - if (!canHaveRootElementReference(businessObject)) { - return; - } - - var referencedRootElement = descriptor.referencedRootElement; + businessObject = descriptor.businessObject, + referencedRootElement = descriptor.referencedRootElement; if (!referencedRootElement) { return; @@ -159,6 +156,8 @@ export default function RootElementReferenceBehavior( } setRootElement(businessObject, referencedRootElement); + + delete descriptor.referencedRootElement; }); } diff --git a/test/spec/features/modeling/behavior/RootElementReferenceBehaviorSpec.js b/test/spec/features/modeling/behavior/RootElementReferenceBehaviorSpec.js index 5d3b7e2c30..814402c062 100644 --- a/test/spec/features/modeling/behavior/RootElementReferenceBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/RootElementReferenceBehaviorSpec.js @@ -101,6 +101,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 +129,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; })); }); From a8fa78935ba9d83cd15b9e26d0a0d7baaafe6976 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sat, 13 Aug 2022 22:40:55 +0200 Subject: [PATCH 078/989] test(copy + paste): add integration test --- test/spec/Modeler.copy-paste.complex.bpmn | 298 ++++++++++++++++++++++ test/spec/Modeler.copy-paste.empty.bpmn | 7 + test/spec/ModelerSpec.js | 190 ++++++++++++++ 3 files changed, 495 insertions(+) create mode 100644 test/spec/Modeler.copy-paste.complex.bpmn create mode 100644 test/spec/Modeler.copy-paste.empty.bpmn 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 ea8c136a52..64e7b018df 100644 --- a/test/spec/ModelerSpec.js +++ b/test/spec/ModelerSpec.js @@ -2,6 +2,8 @@ import Modeler from 'lib/Modeler'; import Viewer from 'lib/Viewer'; import NavigatedViewer from 'lib/NavigatedViewer'; +import { isAny } from 'lib/util/ModelUtil'; + import Clipboard from 'diagram-js/lib/features/clipboard/Clipboard'; import TestContainer from 'mocha-test-container-support'; @@ -17,6 +19,11 @@ import { enableLogging } from 'test/TestHelper'; +import { + pick, + find +} from 'min-dash'; + import { getDi } from 'lib/util/ModelUtil'; @@ -708,6 +715,133 @@ describe('Modeler', function() { }); + + it('should copy + paste via serialized tree', function() { + + 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'); + }); @@ -787,3 +921,59 @@ describe('Modeler', function() { }); }); + + +// 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 From f0093cdd71b867f389d44bad1f811e7db233c25b Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 15 Aug 2022 20:07:51 +0200 Subject: [PATCH 079/989] chore(CHANGELOG): prepare v10.0.0 release --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f432205a60..4a5c6907f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 10.0.0 + +* `FEAT`: allow clipboard to be serialized ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) +* `FEAT`: allow cloning of elements ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) +* `FEAT`: copy groups in a safe manner ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) +* `FIX`: make clipboard contents immutable ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) +* `FIX`: do not alter inputs passed to `ElementFactory#create` ([#1711](https://github.com/bpmn-io/bpmn-js/pull/1711)) +* `FIX`: prevent bogus meta-data to be attached on paste ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) +* `FIX`: only claim existing IDs ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) +* `FIX`: prevent double paste on label creation ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) + ## 9.3.2 * `FIX`: prevent unnecessary scrollbar ([#1692](https://github.com/bpmn-io/bpmn-js/issues/1692)) From a02fe7bfa1f2923c1c2c1a650e8116329e602492 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 17 Aug 2022 16:30:11 +0200 Subject: [PATCH 080/989] deps: update to diagram-js@8.8.0 --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index d3c6e806b8..563abb5ed6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3315,9 +3315,9 @@ "dev": true }, "diagram-js": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.7.1.tgz", - "integrity": "sha512-A6kEiE7yxqgR3o7fFBIeA7miQxxJG/hjpGtjuRfC6Eprs5W5YtZDKeE4efRVrD2NNH/s6bVWuZ4XW5tkDsiH8Q==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.8.0.tgz", + "integrity": "sha512-isDblySC/k8dOUA1yevLPa0rdXT6Zv6+S6ZFv4CUZBk4Bgtv+3MJdnL+hVzeKPVuvlYGsEM42AyXHCW+35QJQg==", "requires": { "css.escape": "^1.5.1", "didi": "^8.0.0", @@ -3340,9 +3340,9 @@ } }, "didi": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/didi/-/didi-8.0.0.tgz", - "integrity": "sha512-PwqTBaYzzfJSyxvpXPcTWF6nDdCKx2mFAU5eup1ZSb5wbaAS9a/HiKdtcAUdie/VMLHoFI50jkYZcA+bhUOugw==" + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/didi/-/didi-8.0.1.tgz", + "integrity": "sha512-7oXiXbp8DHE3FfQsVBkc2pwePo3Jy2uyGS9trAeBmfxiZAP4WV23LWokRpMmyl3hlu8OEAsyMxx19i5P6TVaJQ==" }, "diff": { "version": "5.0.0", diff --git a/package.json b/package.json index 06b8b189e4..bbbecb0b29 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "dependencies": { "bpmn-moddle": "^7.1.2", "css.escape": "^1.5.1", - "diagram-js": "^8.7.1", + "diagram-js": "^8.8.0", "diagram-js-direct-editing": "^1.7.0", "ids": "^1.0.0", "inherits-browser": "0.0.1", From dbe69459d709370d7c5d699649fefeb90c3e35c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 14:51:16 +0000 Subject: [PATCH 081/989] deps: bump node-fetch and puppeteer Bumps [node-fetch](https://github.com/node-fetch/node-fetch) and [puppeteer](https://github.com/puppeteer/puppeteer). These dependencies needed to be updated together. Updates `node-fetch` from 2.6.1 to 2.6.7 - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7) Updates `puppeteer` from 10.0.0 to 16.1.1 - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md) - [Commits](https://github.com/puppeteer/puppeteer/compare/v10.0.0...v16.1.1) --- updated-dependencies: - dependency-name: node-fetch dependency-type: indirect - dependency-name: puppeteer dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 149 +++++++++++++++++++++++++++------------------- package.json | 2 +- 2 files changed, 88 insertions(+), 63 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4c88b0ee1c..0f97147e6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1141,9 +1141,9 @@ } }, "@types/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", "dev": true, "optional": true, "requires": { @@ -1392,9 +1392,9 @@ }, "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" @@ -3112,6 +3112,15 @@ } } }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "requires": { + "node-fetch": "2.6.7" + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -3351,9 +3360,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==", + "version": "0.0.1019158", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz", + "integrity": "sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==", "dev": true }, "di": { @@ -4663,7 +4672,7 @@ "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, "requires": { "pend": "~1.2.0" @@ -5901,9 +5910,9 @@ "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==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "requires": { "agent-base": "6", @@ -5911,9 +5920,9 @@ }, "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" @@ -7519,6 +7528,12 @@ } } }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, "mocha": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", @@ -7933,10 +7948,13 @@ } }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } }, "node-libs-browser": { "version": "2.2.1", @@ -8997,29 +9015,29 @@ "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==", + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-16.1.1.tgz", + "integrity": "sha512-lBneizsNF0zi1/iog9c0ogVnvDHJG4IWpkdIAgE2oiDKhr0MJRV8JeM2xbhUwCwhDJXjjVS2TNCZdLsMp9Ojdg==", "dev": true, "requires": { - "debug": "4.3.1", - "devtools-protocol": "0.0.883894", + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1019158", "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", + "https-proxy-agent": "5.0.1", "pkg-dir": "4.2.0", - "progress": "2.0.1", + "progress": "2.0.3", "proxy-from-env": "1.1.0", "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.8.1" }, "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" @@ -9094,21 +9112,6 @@ "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" - } } } }, @@ -11259,15 +11262,15 @@ } }, "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==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, "requires": { "chownr": "^1.1.1", - "mkdirp": "^0.5.1", + "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.0.0" + "tar-stream": "^2.1.4" } }, "tar-stream": { @@ -11400,7 +11403,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "through2": { @@ -11514,6 +11517,12 @@ } } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", @@ -11645,9 +11654,9 @@ } }, "unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "requires": { "buffer": "^5.2.1", @@ -12418,6 +12427,12 @@ } } }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, "webpack": { "version": "4.46.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", @@ -12823,6 +12838,16 @@ } } }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -12963,9 +12988,9 @@ "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==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", + "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", "dev": true }, "xtend": { @@ -13022,7 +13047,7 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "requires": { "buffer-crc32": "~0.2.3", diff --git a/package.json b/package.json index bbbecb0b29..e07de4b24d 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "npm-run-all": "^4.1.2", "phantomjs-prebuilt": "^2.1.12", "promise-polyfill": "^8.2.0", - "puppeteer": "^10.0.0", + "puppeteer": "^16.1.1", "raw-loader": "^1.0.0", "rollup": "^2.52.2", "rollup-plugin-json": "^4.0.0", From 5b1132fad411c792c0d17b5e4470e13be9e0dfa2 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 17 Aug 2022 20:59:43 +0200 Subject: [PATCH 082/989] ci: simplify matrix build --- .github/workflows/CI.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 323e95ad71..f08b162ac8 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -6,7 +6,6 @@ jobs: strategy: matrix: os: [ macos-latest, ubuntu-latest, windows-latest ] - node-version: [ 14 ] runs-on: ${{ matrix.os }} @@ -16,7 +15,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@v1 with: - node-version: ${{ matrix.node-version }} + node-version: 14 - name: Cache Node.js modules uses: actions/cache@v2 with: From e2ed036be47175c6475b48d2c98ce262a0895999 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 17 Aug 2022 20:59:57 +0200 Subject: [PATCH 083/989] deps: update rollup* --- package-lock.json | 188 ++++++++++++++++++++++++++++++++-------------- package.json | 8 +- 2 files changed, 136 insertions(+), 60 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f97147e6b..4e7fd992e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -956,9 +956,9 @@ } }, "@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==", + "version": "22.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz", + "integrity": "sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -971,59 +971,97 @@ }, "dependencies": { "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "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.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.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==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", "is-module": "^1.0.0", "resolve": "^1.19.0" }, "dependencies": { "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true }, + "is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } @@ -1512,7 +1550,7 @@ "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=", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", "dev": true }, "array-from": { @@ -2866,7 +2904,7 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "component-emitter": { @@ -6266,7 +6304,7 @@ "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true }, "is-negative-zero": { @@ -7235,12 +7273,20 @@ } }, "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==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" + }, + "dependencies": { + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + } } }, "make-dir": { @@ -7811,9 +7857,9 @@ } }, "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true }, "move-concurrently": { @@ -8601,9 +8647,9 @@ "dev": true }, "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==", + "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 }, "pako": { @@ -9787,9 +9833,9 @@ } }, "rollup": { - "version": "2.52.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.2.tgz", - "integrity": "sha512-4RlFC3k2BIHlUsJ9mGd8OO+9Lm2eDF5P7+6DNQOp5sx+7N/1tFM01kELfbxlMX3MxT6owvLB1ln4S3QvvQlbUA==", + "version": "2.78.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz", + "integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -9814,41 +9860,65 @@ } }, "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==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.8.1.tgz", + "integrity": "sha512-VYd9pzaNL7NN6xQp93XiiCV2UoduXgSmTcz6rl9bHPdiifT6yH3Zw/omEr73Rq8TIyN4nqJACBbKIT/2eE66wg==", "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" + "commenting": "~1.1.0", + "glob": "~7.2.0", + "lodash": "~4.17.21", + "magic-string": "~0.26.2", + "mkdirp": "~1.0.4", + "moment": "~2.29.3", + "package-name-regex": "~2.0.6", + "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==", + "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.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, + "magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true } } }, @@ -11183,6 +11253,12 @@ "has-flag": "^3.0.0" } }, + "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 + }, "table": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", diff --git a/package.json b/package.json index e07de4b24d..2e71923b96 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ "*.css" ], "devDependencies": { - "@rollup/plugin-commonjs": "^19.0.0", - "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-commonjs": "^22.0.2", + "@rollup/plugin-node-resolve": "^13.3.0", "bpmn-font": "^0.10.0", "camunda-bpmn-moddle": "^4.0.1", "chai": "4.1.2", @@ -88,9 +88,9 @@ "promise-polyfill": "^8.2.0", "puppeteer": "^16.1.1", "raw-loader": "^1.0.0", - "rollup": "^2.52.2", + "rollup": "^2.78.0", "rollup-plugin-json": "^4.0.0", - "rollup-plugin-license": "^2.5.0", + "rollup-plugin-license": "^2.8.1", "rollup-plugin-replace": "^2.2.0", "rollup-plugin-terser": "^7.0.2", "sinon": "^7.5.0", From 18baf8057f175480e79457486b73196d24e5e8f7 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 17 Aug 2022 21:00:56 +0200 Subject: [PATCH 084/989] deps: update eslint* --- package-lock.json | 2818 ++++++++++++++++++++++++--------------------- package.json | 6 +- 2 files changed, 1479 insertions(+), 1345 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4e7fd992e7..544615ed52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,15 +4,43 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, "@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==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.18.6" } }, + "@babel/compat-data": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "dev": true + }, "@babel/core": { "version": "7.12.9", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", @@ -183,35 +211,85 @@ } } }, + "@babel/eslint-parser": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", + "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", + "dev": true, + "requires": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.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 + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "@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==", + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", "dev": true, "requires": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, "@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==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.9" } }, - "@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==", + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.18.6" } }, "@babel/helper-member-expression-to-functions": { @@ -419,6 +497,12 @@ } } }, + "@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-replace-supers": { "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", @@ -576,20 +660,32 @@ } }, "@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==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "requires": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.18.6" } }, + "@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true + }, "@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 }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, "@babel/helpers": { "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", @@ -724,63 +820,72 @@ } }, "@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==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true + } } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", + "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", "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==", + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "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", + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", + "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.11", + "@babel/types": "^7.18.10", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" }, "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==", + "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" @@ -795,38 +900,38 @@ } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" }, "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==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", "dev": true } } }, "@eslint/eslintrc": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", - "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "dependencies": { @@ -843,9 +948,9 @@ } }, "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" @@ -858,14 +963,23 @@ "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==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -874,6 +988,46 @@ } } }, + "@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "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 + } + } + }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "@istanbuljs/schema": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", @@ -1160,7 +1314,7 @@ "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "@types/node": { @@ -1415,9 +1569,9 @@ "dev": true }, "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==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true }, "agent-base": { @@ -1518,13 +1672,10 @@ "dev": true }, "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" - } + "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 }, "arr-diff": { "version": "2.0.0", @@ -1560,36 +1711,57 @@ "dev": true }, "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==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "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" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" }, "dependencies": { + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, "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==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "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", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-to-primitive": { @@ -1604,24 +1776,25 @@ } }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "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==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "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==", + "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": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "object-keys": { @@ -1645,50 +1818,46 @@ "dev": true }, "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==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" }, "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==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "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", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", "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" - } - } + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-to-primitive": { @@ -1702,165 +1871,77 @@ "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "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==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "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==", + "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-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" - } - } + "has-tostringtag": "^1.0.0" } }, - "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" - } - } - } } } }, "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==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" }, "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==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "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", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.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" - } - } + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-to-primitive": { @@ -1874,42 +1955,26 @@ "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "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==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "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==", + "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": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "object-keys": { @@ -1994,12 +2059,6 @@ "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", @@ -2089,38 +2148,6 @@ } } }, - "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==", - "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" - } - } - } - }, "babel-generator": { "version": "6.26.1", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", @@ -2685,13 +2712,13 @@ } }, "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "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.0" + "get-intrinsic": "^1.0.2" } }, "callsites": { @@ -3254,9 +3281,9 @@ } }, "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=", + "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": { @@ -3664,15 +3691,6 @@ } } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", @@ -3710,6 +3728,21 @@ "is-regex": "^1.0.4" } }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "es-to-primitive": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", @@ -3746,61 +3779,52 @@ "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==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.2", + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "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", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "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", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "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", @@ -3813,6 +3837,12 @@ "uri-js": "^4.2.2" } }, + "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", @@ -3822,10 +3852,19 @@ "color-convert": "^2.0.1" } }, + "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" + } + }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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", @@ -3859,9 +3898,9 @@ } }, "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" @@ -3873,30 +3912,93 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "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-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "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.4" + }, + "dependencies": { + "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" + } + } + } + }, + "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==", + "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, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3906,18 +4008,43 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "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==", + "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-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.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -3930,14 +4057,11 @@ "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" - } + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "shebang-command": { "version": "2.0.0", @@ -3954,6 +4078,15 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "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, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3963,6 +4096,15 @@ "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", @@ -3975,35 +4117,50 @@ } }, "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==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" + "debug": "^3.2.7", + "resolve": "^1.20.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 + }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } }, "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==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "requires": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" + "debug": "^3.2.7" }, "dependencies": { "debug": { @@ -4024,253 +4181,227 @@ } }, "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==", - "dev": true, - "requires": { - "babel-eslint": "^10.1.0", - "eslint-plugin-mocha": "^8.0.0", - "eslint-plugin-react": "^7.22.0" - } - }, - "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==", - "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" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.14.1.tgz", + "integrity": "sha512-W7JTh/wnwzeUH+FMuLSsGeonVaMwxX6s+hopaeRLAcfYG06HwI/NOcPzPQxBTDYJ19xFBiqj24zKcppf3mvFxg==", + "dev": true, + "requires": { + "@babel/core": "^7.18.10", + "@babel/eslint-parser": "^7.18.9", + "@babel/plugin-syntax-jsx": "^7.18.6", + "eslint-plugin-mocha": "^10.1.0", + "eslint-plugin-react": "^7.30.1" + }, + "dependencies": { + "@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" } }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "@babel/types": "^7.18.6" } }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "@babel/helper-module-transforms": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", "dev": true, "requires": { - "esutils": "^2.0.2" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" } }, - "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==", + "@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "@babel/types": "^7.18.6" } }, - "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" - } + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "@babel/helpers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" } }, - "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==", + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "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 + "safe-buffer": "~5.1.1" + } }, - "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==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" + "ms": "2.1.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==", + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "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==", + "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 }, - "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "esutils": "^2.0.2" } }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "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-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-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-extglob": "^2.1.1" } }, - "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==", + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "brace-expansion": "^1.1.7" } }, - "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==", + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } }, "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==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.1.0.tgz", + "integrity": "sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==", "dev": true, "requires": { - "eslint-utils": "^2.1.0", - "ramda": "^0.27.1" + "eslint-utils": "^3.0.0", + "rambda": "^7.1.0" } }, "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==", + "version": "7.30.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", + "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", "dev": true, "requires": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", "doctrine": "^2.1.0", - "has": "^1.0.3", + "estraverse": "^5.3.0", "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" + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.1", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.7" }, "dependencies": { "doctrine": { @@ -4282,15 +4413,37 @@ "esutils": "^2.0.2" } }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.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 } } }, @@ -4305,59 +4458,39 @@ } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "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": "^1.1.0" + "eslint-visitor-keys": "^2.0.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==", + "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": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "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==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", "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 - } + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" } }, - "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.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", @@ -4368,9 +4501,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -4695,7 +4828,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { @@ -4895,23 +5028,6 @@ "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" - }, - "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" - } - } } }, "flatted": { @@ -5553,10 +5669,100 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "dependencies": { + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^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" + } + }, + "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 + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "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" + } + }, + "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 + } + } + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "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": { @@ -5578,20 +5784,20 @@ "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==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true } } @@ -5605,6 +5811,16 @@ "pump": "^3.0.0" } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -5696,6 +5912,12 @@ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -5750,9 +5972,9 @@ } }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "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": { @@ -5761,12 +5983,38 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "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 }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + }, + "dependencies": { + "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-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -6007,9 +6255,9 @@ "dev": true }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "import-fresh": { @@ -6025,7 +6273,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indent-string": { @@ -6082,25 +6330,6 @@ "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 - } } }, "invariant": { @@ -6128,10 +6357,13 @@ "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 + "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-binary-path": { "version": "1.0.1", @@ -6143,41 +6375,13 @@ } }, "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==", + "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" - }, - "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 - } + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-buffer": { @@ -6202,9 +6406,9 @@ "dev": true }, "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==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "dev": true, "requires": { "has": "^1.0.3" @@ -6308,9 +6512,9 @@ "dev": true }, "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=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, "is-number": { @@ -6323,10 +6527,13 @@ } }, "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==", - "dev": true + "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": "2.2.0", @@ -6393,6 +6600,15 @@ "has": "^1.0.1" } }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -6400,10 +6616,13 @@ "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 + "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.2", @@ -6420,6 +6639,15 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "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-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -6643,13 +6871,12 @@ "dev": true }, "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==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "jsbn": { @@ -6685,7 +6912,7 @@ "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=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-safe": { @@ -6722,13 +6949,13 @@ } }, "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==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, "requires": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" } }, "just-extend": { @@ -7087,18 +7314,6 @@ "type-check": "~0.4.0" } }, - "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" - } - }, "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", @@ -7116,48 +7331,18 @@ "json5": "^0.5.0" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "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 - } - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "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 }, - "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 - }, "log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", @@ -7263,15 +7448,6 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -7948,7 +8124,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "negotiator": { @@ -8192,9 +8368,9 @@ } }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true }, "object-keys": { @@ -8226,21 +8402,31 @@ } }, "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==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "dependencies": { + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, "object-keys": { @@ -8252,49 +8438,45 @@ } }, "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==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" + "es-abstract": "^1.19.1" }, "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==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "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", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.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" - } - } + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-to-primitive": { @@ -8308,42 +8490,26 @@ "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "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==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "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==", + "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": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "object-keys": { @@ -8355,49 +8521,45 @@ } }, "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==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" + "es-abstract": "^1.19.1" }, "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==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "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", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.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" - } - } + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-to-primitive": { @@ -8411,42 +8573,118 @@ "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==", + "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 + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "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" + } + }, + "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.hasown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "dev": true, + "requires": { + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "dependencies": { + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^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" } }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "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==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "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==", + "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": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "object-keys": { @@ -8485,35 +8723,45 @@ } }, "object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" + "es-abstract": "^1.19.1" }, "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==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "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", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-to-primitive": { @@ -8528,24 +8776,25 @@ } }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "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==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "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==", + "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": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "object-keys": { @@ -8607,30 +8856,6 @@ "word-wrap": "^1.2.3" } }, - "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 - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, "p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -8640,12 +8865,6 @@ "aggregate-error": "^3.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 - }, "package-name-regex": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.6.tgz", @@ -8703,16 +8922,6 @@ "is-glob": "^2.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" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -8784,15 +8993,6 @@ } } }, - "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" - } - }, "pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -8882,46 +9082,6 @@ "pinkie": "^2.0.0" } }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "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" - } - } - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "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" - } - } - } - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -8971,14 +9131,14 @@ "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==", + "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": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "react-is": "^16.13.1" } }, "proxy-from-env": { @@ -9191,10 +9351,10 @@ "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==", + "rambda": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.2.1.tgz", + "integrity": "sha512-Wswj8ZvzdI3VhaGPkZAxaCTwuMmGtgWt7Zxsgyo4P+iTmVnkojvyWaOep5q3ZjMIecW0wtQa66GWxaKkZ24RAA==", "dev": true }, "randomatic": { @@ -9288,38 +9448,6 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "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" - } - }, - "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=", - "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" - } - } - } - }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -9648,42 +9776,14 @@ } }, "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==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "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 - } + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" } }, "regexpp": { @@ -9762,12 +9862,6 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "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 - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -10459,25 +10553,6 @@ "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": { @@ -10521,49 +10596,6 @@ "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 - } - } - }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -10876,12 +10908,6 @@ "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=", - "dev": true - }, "sshpk": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", @@ -11055,52 +11081,50 @@ } }, "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.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "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" + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" }, "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==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "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", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.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" - } - } + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-to-primitive": { @@ -11114,42 +11138,26 @@ "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "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==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "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==", + "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": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "object-keys": { @@ -11172,23 +11180,189 @@ } }, "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.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "dependencies": { + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^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" + } + }, + "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 + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "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" + } + }, + "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.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.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "dependencies": { + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^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" + } + }, + "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 + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "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" + } + }, + "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_decoder": { @@ -11259,46 +11433,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "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 - } - } - }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -11467,7 +11601,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "throttleit": { @@ -11606,14 +11740,14 @@ "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==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, "dependencies": { @@ -11625,6 +11759,12 @@ "requires": { "minimist": "^1.2.0" } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true } } }, @@ -11710,21 +11850,21 @@ "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==", + "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": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true } } @@ -12947,9 +13087,9 @@ }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, "is-symbol": { @@ -13081,12 +13221,6 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", diff --git a/package.json b/package.json index 2e71923b96..5164b6ae48 100644 --- a/package.json +++ b/package.json @@ -63,9 +63,9 @@ "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", + "eslint": "^8.22.0", + "eslint-plugin-bpmn-io": "^0.14.1", + "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", "istanbul-instrumenter-loader": "^3.0.1", "karma": "^6.3.4", From c42dbf8a70afd19d8ae036cd4e8fc54418f7593e Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 17 Aug 2022 21:05:23 +0200 Subject: [PATCH 085/989] style: update code style Apply latest bpmn-io code style. --- lib/draw/BpmnRenderUtil.js | 50 +++++------ lib/draw/BpmnRenderer.js | 8 +- lib/draw/PathMap.js | 84 +++++++++---------- lib/features/align-elements/index.js | 2 +- .../drilldown/DrilldownOverlayBehavior.js | 4 +- .../drilldown/SubprocessCompatibility.js | 2 +- lib/features/drilldown/index.js | 2 +- lib/features/keyboard/BpmnKeyboardBindings.js | 14 ++-- .../label-editing/LabelEditingProvider.js | 2 +- .../modeling/behavior/DropOnFlowBehavior.js | 2 +- lib/features/modeling/behavior/index.js | 2 +- .../modeling/behavior/util/LayoutUtil.js | 12 +-- .../cmd/UpdateModdlePropertiesHandler.js | 2 +- lib/features/search/index.js | 2 +- rollup.config.js | 2 +- test/config/karma.unit.js | 2 +- test/helper/index.js | 2 +- test/integration/CustomElementsSpec.js | 2 +- .../custom-elements/CustomRenderer.js | 20 ++--- test/spec/ViewerSpec.js | 6 +- .../features/auto-resize/AutoResizeSpec.js | 2 +- .../features/copy-paste/BpmnCopyPasteSpec.js | 2 +- .../keyboard/BpmnKeyboardBindingsSpec.js | 12 +-- .../behavior/DropOnFlowBehaviorSpec.js | 2 +- .../behavior/ReconnectConnectionSpec.js | 4 +- .../behavior/ReplaceConnectionBehaviorSpec.js | 4 +- .../behavior/ReplaceElementBehaviourSpec.js | 2 +- .../features/modeling/lanes/ResizeLaneSpec.js | 2 +- test/spec/features/modeling/layout/Helper.js | 2 +- .../features/ordering/BpmnDiOrderingSpec.js | 2 +- .../ordering/BpmnOrderingProviderSpec.js | 8 +- .../popup-menu/ReplaceMenuProviderSpec.js | 2 +- test/spec/features/replace/BpmnReplaceSpec.js | 22 ++--- test/spec/features/rules/BpmnRulesSpec.js | 2 +- test/spec/import/ImporterSpec.js | 2 +- 35 files changed, 146 insertions(+), 146 deletions(-) diff --git a/lib/draw/BpmnRenderUtil.js b/lib/draw/BpmnRenderUtil.js index 5f5391d864..bd20ad45fd 100644 --- a/lib/draw/BpmnRenderUtil.js +++ b/lib/draw/BpmnRenderUtil.js @@ -86,11 +86,11 @@ export function getCirclePath(shape) { 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); @@ -104,16 +104,16 @@ export function getRoundRectPath(shape, borderRadius) { height = shape.height; var roundRectPath = [ - ['M', x + borderRadius, y], - ['l', width - borderRadius * 2, 0], - ['a', borderRadius, borderRadius, 0, 0, 1, borderRadius, borderRadius], - ['l', 0, height - borderRadius * 2], - ['a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, borderRadius], - ['l', borderRadius * 2 - width, 0], - ['a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, -borderRadius], - ['l', 0, borderRadius * 2 - height], - ['a', borderRadius, borderRadius, 0, 0, 1, borderRadius, -borderRadius], - ['z'] + [ 'M', x + borderRadius, y ], + [ 'l', width - borderRadius * 2, 0 ], + [ 'a', borderRadius, borderRadius, 0, 0, 1, borderRadius, borderRadius ], + [ 'l', 0, height - borderRadius * 2 ], + [ 'a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, borderRadius ], + [ 'l', borderRadius * 2 - width, 0 ], + [ 'a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, -borderRadius ], + [ 'l', 0, borderRadius * 2 - height ], + [ 'a', borderRadius, borderRadius, 0, 0, 1, borderRadius, -borderRadius ], + [ 'z' ] ]; return componentsToPath(roundRectPath); @@ -129,11 +129,11 @@ export function getDiamondPath(shape) { halfHeight = height / 2; var diamondPath = [ - ['M', x + halfWidth, y], - ['l', halfWidth, halfHeight], - ['l', -halfWidth, halfHeight], - ['l', -halfWidth, -halfHeight], - ['z'] + [ 'M', x + halfWidth, y ], + [ 'l', halfWidth, halfHeight ], + [ 'l', -halfWidth, halfHeight ], + [ 'l', -halfWidth, -halfHeight ], + [ 'z' ] ]; return componentsToPath(diamondPath); @@ -146,11 +146,11 @@ export function getRectPath(shape) { height = shape.height; var rectPath = [ - ['M', x, y], - ['l', width, 0], - ['l', 0, height], - ['l', -width, 0], - ['z'] + [ 'M', x, y ], + [ 'l', width, 0 ], + [ 'l', 0, height ], + [ 'l', -width, 0 ], + [ 'z' ] ]; return componentsToPath(rectPath); diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index c94219230c..8dee8751ea 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -100,7 +100,7 @@ export default function BpmnRenderer( // fix for safari / chrome / firefox bug not correctly // resetting stroke dash array if (attrs.strokeDasharray === 'none') { - attrs.strokeDasharray = [10000, 1]; + attrs.strokeDasharray = [ 10000, 1 ]; } var marker = svgCreate('marker'); @@ -327,7 +327,7 @@ export default function BpmnRenderer( var x_2 = width / 2; var y_2 = height / 2; - var points = [{ x: x_2, y: 0 }, { x: width, y: y_2 }, { x: x_2, y: height }, { x: 0, y: y_2 }]; + var points = [ { x: x_2, y: 0 }, { x: width, y: y_2 }, { x: x_2, y: height }, { x: 0, y: y_2 } ]; var pointsString = points.map(function(point) { return point.x + ',' + point.y; @@ -399,7 +399,7 @@ export default function BpmnRenderer( var event = getSemantic(element); var isThrowing = isThrowEvent(event); - if (event.eventDefinitions && event.eventDefinitions.length>1) { + if (event.eventDefinitions && event.eventDefinitions.length > 1) { if (event.parallelMultiple) { return renderer('bpmn:ParallelMultipleEventDefinition')(parentGfx, element, isThrowing); } @@ -1115,7 +1115,7 @@ export default function BpmnRenderer( if (expanded) { attachTaskMarkers(parentGfx, element); } else { - attachTaskMarkers(parentGfx, element, ['SubProcessMarker']); + attachTaskMarkers(parentGfx, element, [ 'SubProcessMarker' ]); } return rect; diff --git a/lib/draw/PathMap.js b/lib/draw/PathMap.js index a55e788a5c..343cbc15e9 100644 --- a/lib/draw/PathMap.js +++ b/lib/draw/PathMap.js @@ -40,22 +40,22 @@ export default function PathMap() { d: 'm {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}', height: 36, width: 36, - heightElements: [6, 14], - widthElements: [10.5, 21] + heightElements: [ 6, 14 ], + widthElements: [ 10.5, 21 ] }, 'EVENT_SIGNAL': { d: 'M {mx},{my} l {e.x0},{e.y0} l -{e.x1},0 Z', height: 36, width: 36, - heightElements: [18], - widthElements: [10, 20] + heightElements: [ 18 ], + widthElements: [ 10, 20 ] }, 'EVENT_ESCALATION': { d: 'M {mx},{my} l {e.x0},{e.y0} l -{e.x0},-{e.y1} l -{e.x0},{e.y1} Z', height: 36, width: 36, - heightElements: [20, 7], - widthElements: [8] + heightElements: [ 20, 7 ], + widthElements: [ 8 ] }, 'EVENT_CONDITIONAL': { d: 'M {e.x0},{e.y0} l {e.x1},0 l 0,{e.y2} l -{e.x1},0 Z ' + @@ -67,67 +67,67 @@ export default function PathMap() { 'M {e.x2},{e.y8} l {e.x0},0 ', height: 36, width: 36, - heightElements: [8.5, 14.5, 18, 11.5, 14.5, 17.5, 20.5, 23.5, 26.5], - widthElements: [10.5, 14.5, 12.5] + heightElements: [ 8.5, 14.5, 18, 11.5, 14.5, 17.5, 20.5, 23.5, 26.5 ], + widthElements: [ 10.5, 14.5, 12.5 ] }, 'EVENT_LINK': { d: 'm {mx},{my} 0,{e.y0} -{e.x1},0 0,{e.y1} {e.x1},0 0,{e.y0} {e.x0},-{e.y2} -{e.x0},-{e.y2} z', height: 36, width: 36, - heightElements: [4.4375, 6.75, 7.8125], - widthElements: [9.84375, 13.5] + heightElements: [ 4.4375, 6.75, 7.8125 ], + widthElements: [ 9.84375, 13.5 ] }, 'EVENT_ERROR': { d: 'm {mx},{my} {e.x0},-{e.y0} {e.x1},-{e.y1} {e.x2},{e.y2} {e.x3},-{e.y3} -{e.x4},{e.y4} -{e.x5},-{e.y5} z', height: 36, width: 36, - heightElements: [0.023, 8.737, 8.151, 16.564, 10.591, 8.714], - widthElements: [0.085, 6.672, 6.97, 4.273, 5.337, 6.636] + heightElements: [ 0.023, 8.737, 8.151, 16.564, 10.591, 8.714 ], + widthElements: [ 0.085, 6.672, 6.97, 4.273, 5.337, 6.636 ] }, 'EVENT_CANCEL_45': { d: 'm {mx},{my} -{e.x1},0 0,{e.x0} {e.x1},0 0,{e.y1} {e.x0},0 ' + '0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z', height: 36, width: 36, - heightElements: [4.75, 8.5], - widthElements: [4.75, 8.5] + heightElements: [ 4.75, 8.5 ], + widthElements: [ 4.75, 8.5 ] }, 'EVENT_COMPENSATION': { d: 'm {mx},{my} {e.x0},-{e.y0} 0,{e.y1} z m {e.x1},-{e.y2} {e.x2},-{e.y3} 0,{e.y1} -{e.x2},-{e.y3} z', height: 36, width: 36, - heightElements: [6.5, 13, 0.4, 6.1], - widthElements: [9, 9.3, 8.7] + heightElements: [ 6.5, 13, 0.4, 6.1 ], + widthElements: [ 9, 9.3, 8.7 ] }, 'EVENT_TIMER_WH': { d: 'M {mx},{my} l {e.x0},-{e.y0} m -{e.x0},{e.y0} l {e.x1},{e.y1} ', height: 36, width: 36, - heightElements: [10, 2], - widthElements: [3, 7] + heightElements: [ 10, 2 ], + widthElements: [ 3, 7 ] }, 'EVENT_TIMER_LINE': { d: 'M {mx},{my} ' + 'm {e.x0},{e.y0} l -{e.x1},{e.y1} ', height: 36, width: 36, - heightElements: [10, 3], - widthElements: [0, 0] + heightElements: [ 10, 3 ], + widthElements: [ 0, 0 ] }, 'EVENT_MULTIPLE': { d:'m {mx},{my} {e.x1},-{e.y0} {e.x1},{e.y0} -{e.x0},{e.y1} -{e.x2},0 z', height: 36, width: 36, - heightElements: [6.28099, 12.56199], - widthElements: [3.1405, 9.42149, 12.56198] + heightElements: [ 6.28099, 12.56199 ], + widthElements: [ 3.1405, 9.42149, 12.56198 ] }, 'EVENT_PARALLEL_MULTIPLE': { d:'m {mx},{my} {e.x0},0 0,{e.y1} {e.x1},0 0,{e.y0} -{e.x1},0 0,{e.y1} ' + '-{e.x0},0 0,-{e.y1} -{e.x1},0 0,-{e.y0} {e.x1},0 z', height: 36, width: 36, - heightElements: [2.56228, 7.68683], - widthElements: [2.56228, 7.68683] + heightElements: [ 2.56228, 7.68683 ], + widthElements: [ 2.56228, 7.68683 ] }, 'GATEWAY_EXCLUSIVE': { d:'m {mx},{my} {e.x0},{e.y0} {e.x1},{e.y0} {e.x2},0 {e.x4},{e.y2} ' + @@ -135,23 +135,23 @@ export default function PathMap() { '{e.x3},0 {e.x5},{e.y1} {e.x5},{e.y2} {e.x3},0 z', height: 17.5, width: 17.5, - heightElements: [8.5, 6.5312, -6.5312, -8.5], - widthElements: [6.5, -6.5, 3, -3, 5, -5] + heightElements: [ 8.5, 6.5312, -6.5312, -8.5 ], + widthElements: [ 6.5, -6.5, 3, -3, 5, -5 ] }, 'GATEWAY_PARALLEL': { d:'m {mx},{my} 0,{e.y1} -{e.x1},0 0,{e.y0} {e.x1},0 0,{e.y1} {e.x0},0 ' + '0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z', height: 30, width: 30, - heightElements: [5, 12.5], - widthElements: [5, 12.5] + heightElements: [ 5, 12.5 ], + widthElements: [ 5, 12.5 ] }, 'GATEWAY_EVENT_BASED': { d:'m {mx},{my} {e.x0},{e.y0} {e.x0},{e.y1} {e.x1},{e.y2} {e.x2},0 z', height: 11, width: 11, - heightElements: [-6, 6, 12, -12], - widthElements: [9, -3, -12] + heightElements: [ -6, 6, 12, -12 ], + widthElements: [ 9, -3, -12 ] }, 'GATEWAY_COMPLEX': { d:'m {mx},{my} 0,{e.y0} -{e.x0},-{e.y1} -{e.x1},{e.y2} {e.x0},{e.y1} -{e.x2},0 0,{e.y3} ' + @@ -160,15 +160,15 @@ export default function PathMap() { '-{e.x0},{e.y1} 0,-{e.y0} -{e.x3},0 z', height: 17.125, width: 17.125, - heightElements: [4.875, 3.4375, 2.125, 3], - widthElements: [3.4375, 2.125, 4.875, 3] + heightElements: [ 4.875, 3.4375, 2.125, 3 ], + widthElements: [ 3.4375, 2.125, 4.875, 3 ] }, 'DATA_OBJECT_PATH': { d:'m 0,0 {e.x1},0 {e.x0},{e.y0} 0,{e.y1} -{e.x2},0 0,-{e.y2} {e.x1},0 0,{e.y0} {e.x0},0', height: 61, width: 51, - heightElements: [10, 50, 60], - widthElements: [10, 40, 50, 60] + heightElements: [ 10, 50, 60 ], + widthElements: [ 10, 40, 50, 60 ] }, 'DATA_OBJECT_COLLECTION_PATH': { d: 'm{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10', @@ -197,15 +197,15 @@ export default function PathMap() { 'c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0', height: 61, width: 61, - heightElements: [7, 10, 45], - widthElements: [2, 58, 60] + heightElements: [ 7, 10, 45 ], + widthElements: [ 2, 58, 60 ] }, 'TEXT_ANNOTATION': { d: 'm {mx}, {my} m 10,0 l -10,0 l 0,{e.y0} l 10,0', height: 30, width: 10, - heightElements: [30], - widthElements: [10] + heightElements: [ 30 ], + widthElements: [ 10 ] }, 'MARKER_SUB_PROCESS': { d: 'm{mx},{my} m 7,2 l 0,10 m -5,-5 l 10,0', @@ -260,8 +260,8 @@ export default function PathMap() { d: 'm {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}', height: 14, width: 21, - heightElements: [6, 14], - widthElements: [10.5, 21] + heightElements: [ 6, 14 ], + widthElements: [ 10.5, 21 ] }, 'TASK_TYPE_SCRIPT': { d: 'm {mx},{my} c 9.966553,-6.27276 -8.000926,-7.91932 2.968968,-14.938 l -8.802728,0 ' + @@ -272,8 +272,8 @@ export default function PathMap() { 'm -4,3 l 5,0', height: 15, width: 12.6, - heightElements: [6, 14], - widthElements: [10.5, 21] + heightElements: [ 6, 14 ], + widthElements: [ 10.5, 21 ] }, 'TASK_TYPE_USER_1': { d: 'm {mx},{my} c 0.909,-0.845 1.594,-2.049 1.594,-3.385 0,-2.554 -1.805,-4.62199999 ' + diff --git a/lib/features/align-elements/index.js b/lib/features/align-elements/index.js index 2ce329e43e..397e461b7b 100644 --- a/lib/features/align-elements/index.js +++ b/lib/features/align-elements/index.js @@ -19,5 +19,5 @@ export default { ], alignElementsContextPadProvider: [ 'type', AlignElementsContextPadProvider ], alignElementsMenuProvider: [ 'type', AlignElementsMenuProvider ], - bpmnAlignElements: [ 'type', BpmnAlignElements] + bpmnAlignElements: [ 'type', BpmnAlignElements ] }; diff --git a/lib/features/drilldown/DrilldownOverlayBehavior.js b/lib/features/drilldown/DrilldownOverlayBehavior.js index 7fd6d0d276..98cc38fbcf 100644 --- a/lib/features/drilldown/DrilldownOverlayBehavior.js +++ b/lib/features/drilldown/DrilldownOverlayBehavior.js @@ -46,7 +46,7 @@ export default function DrilldownOverlayBehavior( }, true); - this.executed(['shape.create', 'shape.move', 'shape.delete'], LOW_PRIORITY, + this.executed([ 'shape.create', 'shape.move', 'shape.delete' ], LOW_PRIORITY, function(context) { var oldParent = context.oldParent, newParent = context.newParent || context.parent, @@ -63,7 +63,7 @@ export default function DrilldownOverlayBehavior( }, true); - this.reverted(['shape.create', 'shape.move', 'shape.delete'], LOW_PRIORITY, + this.reverted([ 'shape.create', 'shape.move', 'shape.delete' ], LOW_PRIORITY, function(context) { var oldParent = context.oldParent, newParent = context.newParent || context.parent, diff --git a/lib/features/drilldown/SubprocessCompatibility.js b/lib/features/drilldown/SubprocessCompatibility.js index 2bd76c135c..19dedcfb50 100644 --- a/lib/features/drilldown/SubprocessCompatibility.js +++ b/lib/features/drilldown/SubprocessCompatibility.js @@ -210,7 +210,7 @@ function shouldMoveToPlane(bo, plane) { // dataAssociations are children of the subprocess but rendered on process level // cf. https://github.com/bpmn-io/bpmn-js/issues/1619 - if (isAny(bo, ['bpmn:DataInputAssociation', 'bpmn:DataOutputAssociation'])) { + if (isAny(bo, [ 'bpmn:DataInputAssociation', 'bpmn:DataOutputAssociation' ])) { return false; } diff --git a/lib/features/drilldown/index.js b/lib/features/drilldown/index.js index affd9add5b..fe32796a50 100644 --- a/lib/features/drilldown/index.js +++ b/lib/features/drilldown/index.js @@ -9,7 +9,7 @@ import DrilldownOverlayBehavior from './DrilldownOverlayBehavior'; export default { __depends__: [ OverlaysModule, ChangeSupportModule, RootElementsModule ], - __init__: [ 'drilldownBreadcrumbs', 'drilldownOverlayBehavior', 'drilldownCentering', 'subprocessCompatibility'], + __init__: [ 'drilldownBreadcrumbs', 'drilldownOverlayBehavior', 'drilldownCentering', 'subprocessCompatibility' ], drilldownBreadcrumbs: [ 'type', DrilldownBreadcrumbs ], drilldownCentering: [ 'type', DrilldownCentering ], drilldownOverlayBehavior: [ 'type', DrilldownOverlayBehavior ], diff --git a/lib/features/keyboard/BpmnKeyboardBindings.js b/lib/features/keyboard/BpmnKeyboardBindings.js index f85a5132f6..f74b3e55cc 100644 --- a/lib/features/keyboard/BpmnKeyboardBindings.js +++ b/lib/features/keyboard/BpmnKeyboardBindings.js @@ -50,7 +50,7 @@ BpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActio var event = context.keyEvent; - if (keyboard.isKey(['a', 'A'], event) && keyboard.isCmd(event)) { + if (keyboard.isKey([ 'a', 'A' ], event) && keyboard.isCmd(event)) { editorActions.trigger('selectElements'); return true; @@ -63,7 +63,7 @@ BpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActio var event = context.keyEvent; - if (keyboard.isKey(['f', 'F'], event) && keyboard.isCmd(event)) { + if (keyboard.isKey([ 'f', 'F' ], event) && keyboard.isCmd(event)) { editorActions.trigger('find'); return true; @@ -80,7 +80,7 @@ BpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActio return; } - if (keyboard.isKey(['s', 'S'], event)) { + if (keyboard.isKey([ 's', 'S' ], event)) { editorActions.trigger('spaceTool'); return true; @@ -97,7 +97,7 @@ BpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActio return; } - if (keyboard.isKey(['l', 'L'], event)) { + if (keyboard.isKey([ 'l', 'L' ], event)) { editorActions.trigger('lassoTool'); return true; @@ -114,7 +114,7 @@ BpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActio return; } - if (keyboard.isKey(['h', 'H'], event)) { + if (keyboard.isKey([ 'h', 'H' ], event)) { editorActions.trigger('handTool'); return true; @@ -131,7 +131,7 @@ BpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActio return; } - if (keyboard.isKey(['c', 'C'], event)) { + if (keyboard.isKey([ 'c', 'C' ], event)) { editorActions.trigger('globalConnectTool'); return true; @@ -148,7 +148,7 @@ BpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActio return; } - if (keyboard.isKey(['e', 'E'], event)) { + if (keyboard.isKey([ 'e', 'E' ], event)) { editorActions.trigger('directEditing'); return true; diff --git a/lib/features/label-editing/LabelEditingProvider.js b/lib/features/label-editing/LabelEditingProvider.js index f6553e295a..ecfd6077a9 100644 --- a/lib/features/label-editing/LabelEditingProvider.js +++ b/lib/features/label-editing/LabelEditingProvider.js @@ -262,7 +262,7 @@ LabelEditingProvider.prototype.getEditingBBox = function(element) { // internal labels for tasks and collapsed call activities, // sub processes and participants - if (isAny(element, [ 'bpmn:Task', 'bpmn:CallActivity']) || + if (isAny(element, [ 'bpmn:Task', 'bpmn:CallActivity' ]) || isCollapsedPool(element) || isCollapsedSubProcess(element)) { diff --git a/lib/features/modeling/behavior/DropOnFlowBehavior.js b/lib/features/modeling/behavior/DropOnFlowBehavior.js index 35f600877a..fc1dfba595 100644 --- a/lib/features/modeling/behavior/DropOnFlowBehavior.js +++ b/lib/features/modeling/behavior/DropOnFlowBehavior.js @@ -59,7 +59,7 @@ export default function DropOnFlowBehavior(eventBus, bpmnRules, modeling) { dockingPoint = intersection.bendpoint ? waypoints[intersection.index] : mid; // if last waypointBefore is inside shape's bounds, ignore docking point - if (waypointsBefore.length === 1 || !isPointInsideBBox(shape, waypointsBefore[waypointsBefore.length-1])) { + if (waypointsBefore.length === 1 || !isPointInsideBBox(shape, waypointsBefore[waypointsBefore.length - 1])) { waypointsBefore.push(copy(dockingPoint)); } diff --git a/lib/features/modeling/behavior/index.js b/lib/features/modeling/behavior/index.js index acceab57b6..059c74bace 100644 --- a/lib/features/modeling/behavior/index.js +++ b/lib/features/modeling/behavior/index.js @@ -101,7 +101,7 @@ export default { messageFlowBehavior: [ 'type', MessageFlowBehavior ], modelingFeedback: [ 'type', ModelingFeedback ], removeElementBehavior: [ 'type', RemoveElementBehavior ], - removeEmbeddedLabelBoundsBehavior: ['type', RemoveEmbeddedLabelBoundsBehavior ], + removeEmbeddedLabelBoundsBehavior: [ 'type', RemoveEmbeddedLabelBoundsBehavior ], removeParticipantBehavior: [ 'type', RemoveParticipantBehavior ], replaceConnectionBehavior: [ 'type', ReplaceConnectionBehavior ], replaceElementBehaviour: [ 'type', ReplaceElementBehaviour ], diff --git a/lib/features/modeling/behavior/util/LayoutUtil.js b/lib/features/modeling/behavior/util/LayoutUtil.js index e45e7b54d1..39e0f7e2e5 100644 --- a/lib/features/modeling/behavior/util/LayoutUtil.js +++ b/lib/features/modeling/behavior/util/LayoutUtil.js @@ -32,7 +32,7 @@ export function findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hi // point is after new segment index if (index >= newSegmentStartIndex) { - return (index+offset < newSegmentStartIndex) ? newSegmentStartIndex : index+offset; + return (index + offset < newSegmentStartIndex) ? newSegmentStartIndex : index + offset; } // if point is before new segment index @@ -62,7 +62,7 @@ export function findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hi newIndex = index; // decide point should take right or left segment - if (insert && attachment.type !== 'bendpoint' && bendpointIndex-1 === index) { + if (insert && attachment.type !== 'bendpoint' && bendpointIndex - 1 === index) { var rel = relativePositionMidWaypoint(newWaypoints, bendpointIndex); @@ -89,7 +89,7 @@ export function findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hi } // if nothing fits, take the middle segment - return Math.floor((newWaypoints.length - 2)/2); + return Math.floor((newWaypoints.length - 2) / 2); } @@ -203,8 +203,8 @@ export function getAnchorPointAdjustment(position, newWaypoints, oldWaypoints, h function relativePositionMidWaypoint(waypoints, idx) { - var distanceSegment1 = getDistancePointPoint(waypoints[idx-1], waypoints[idx]), - distanceSegment2 = getDistancePointPoint(waypoints[idx], waypoints[idx+1]); + var distanceSegment1 = getDistancePointPoint(waypoints[idx - 1], waypoints[idx]), + distanceSegment2 = getDistancePointPoint(waypoints[idx], waypoints[idx + 1]); var relativePosition = distanceSegment1 / (distanceSegment1 + distanceSegment2); @@ -218,7 +218,7 @@ function getAngleDelta(l1, l2) { } function getLine(waypoints, idx) { - return [ waypoints[idx], waypoints[idx+1] ]; + return [ waypoints[idx], waypoints[idx + 1] ]; } function getRelativeFootPosition(line, foot) { diff --git a/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js b/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js index f3f7649239..b543132383 100644 --- a/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js +++ b/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js @@ -13,7 +13,7 @@ export default function UpdateModdlePropertiesHandler(elementRegistry) { this._elementRegistry = elementRegistry; } -UpdateModdlePropertiesHandler.$inject = ['elementRegistry']; +UpdateModdlePropertiesHandler.$inject = [ 'elementRegistry' ]; UpdateModdlePropertiesHandler.prototype.execute = function(context) { diff --git a/lib/features/search/index.js b/lib/features/search/index.js index 80eb32cd2b..b7050aee94 100644 --- a/lib/features/search/index.js +++ b/lib/features/search/index.js @@ -7,6 +7,6 @@ export default { __depends__: [ SearchPadModule ], - __init__: [ 'bpmnSearch'], + __init__: [ 'bpmnSearch' ], bpmnSearch: [ 'type', BpmnSearchProvider ] }; diff --git a/rollup.config.js b/rollup.config.js index b4ec94d615..70c14b8ecc 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -92,7 +92,7 @@ function banner(bundleName, minified) { }); } -function pgl(plugins=[], env='production') { +function pgl(plugins = [], env = 'production') { return [ replace({ 'process.env.NODE_ENV': JSON.stringify(env) diff --git a/test/config/karma.unit.js b/test/config/karma.unit.js index 8f9ac4a55d..43ae038671 100644 --- a/test/config/karma.unit.js +++ b/test/config/karma.unit.js @@ -96,7 +96,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/helper/index.js b/test/helper/index.js index 9e005eadd1..28edf508d9 100644 --- a/test/helper/index.js +++ b/test/helper/index.js @@ -104,7 +104,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 ]); diff --git a/test/integration/CustomElementsSpec.js b/test/integration/CustomElementsSpec.js index f64d2c7b60..7b205823be 100644 --- a/test/integration/CustomElementsSpec.js +++ b/test/integration/CustomElementsSpec.js @@ -12,7 +12,7 @@ import { import customElementsModules from './custom-elements'; -var noTouchInteractionModule = { touchInteractionEvents: ['value', null ] }, +var noTouchInteractionModule = { touchInteractionEvents: [ 'value', null ] }, modelerModules = Modeler.prototype._modules, customModules = [ customElementsModules, noTouchInteractionModule ]; diff --git a/test/integration/custom-elements/CustomRenderer.js b/test/integration/custom-elements/CustomRenderer.js index d8d50c7eab..d8445bb864 100644 --- a/test/integration/custom-elements/CustomRenderer.js +++ b/test/integration/custom-elements/CustomRenderer.js @@ -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/spec/ViewerSpec.js b/test/spec/ViewerSpec.js index 2dfcf564bf..a15d08a782 100644 --- a/test/spec/ViewerSpec.js +++ b/test/spec/ViewerSpec.js @@ -1593,7 +1593,7 @@ describe('Viewer', function() { // then expect(events).to.eql([ [ 'saveSVG.start', [ ] ], - [ 'saveSVG.done', ['error', 'svg' ] ] + [ 'saveSVG.done', [ 'error', 'svg' ] ] ]); }); }); @@ -1832,7 +1832,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', 'context' ] ], [ 'import.render.start', [ 'definitions' ] ], [ 'import.render.complete', [ 'error', 'warnings' ] ], [ 'import.done', [ 'error', 'warnings' ] ] @@ -2500,7 +2500,7 @@ describe('Viewer', function() { // then expect(events).to.eql([ [ 'saveSVG.start', [ ] ], - [ 'saveSVG.done', ['error', 'svg' ] ] + [ 'saveSVG.done', [ 'error', 'svg' ] ] ]); done(err); diff --git a/test/spec/features/auto-resize/AutoResizeSpec.js b/test/spec/features/auto-resize/AutoResizeSpec.js index fede19eb84..8b8bcf67d0 100644 --- a/test/spec/features/auto-resize/AutoResizeSpec.js +++ b/test/spec/features/auto-resize/AutoResizeSpec.js @@ -547,7 +547,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/copy-paste/BpmnCopyPasteSpec.js b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js index 533e17d2d5..865060db85 100644 --- a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js +++ b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js @@ -895,7 +895,7 @@ describe('features/copy-paste', function() { // then // elements pasted with original IDs - forEach([ 'SUB_PROCESS', 'SUB_TASK', 'SUB_BOUNDARY'], function(id) { + forEach([ 'SUB_PROCESS', 'SUB_TASK', 'SUB_BOUNDARY' ], function(id) { var el = find(pastedElements, function(el) { return el.id === id; diff --git a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js index 1794172075..4e08ab00b6 100644 --- a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js +++ b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js @@ -71,7 +71,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 +90,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 +109,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 +128,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 +151,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 +176,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) { diff --git a/test/spec/features/modeling/behavior/DropOnFlowBehaviorSpec.js b/test/spec/features/modeling/behavior/DropOnFlowBehaviorSpec.js index fa3ceb6b65..5254551575 100644 --- a/test/spec/features/modeling/behavior/DropOnFlowBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/DropOnFlowBehaviorSpec.js @@ -11,7 +11,7 @@ import coreModule from 'lib/core'; import moveModule from 'diagram-js/lib/features/move'; import modelingModule from 'lib/features/modeling'; -var noTouchInteractionModule = { touchInteractionEvents: ['value', null ] }; +var noTouchInteractionModule = { touchInteractionEvents: [ 'value', null ] }; import { createCanvasEvent as canvasEvent diff --git a/test/spec/features/modeling/behavior/ReconnectConnectionSpec.js b/test/spec/features/modeling/behavior/ReconnectConnectionSpec.js index f94838a861..b94ea536e5 100644 --- a/test/spec/features/modeling/behavior/ReconnectConnectionSpec.js +++ b/test/spec/features/modeling/behavior/ReconnectConnectionSpec.js @@ -32,7 +32,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) { @@ -77,7 +77,7 @@ 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/ReplaceConnectionBehaviorSpec.js b/test/spec/features/modeling/behavior/ReplaceConnectionBehaviorSpec.js index 755342aa67..e877ce3f70 100644 --- a/test/spec/features/modeling/behavior/ReplaceConnectionBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/ReplaceConnectionBehaviorSpec.js @@ -123,7 +123,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 +155,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); diff --git a/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js b/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js index 49c79d7926..06a49ab617 100644 --- a/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js +++ b/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js @@ -51,7 +51,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); diff --git a/test/spec/features/modeling/lanes/ResizeLaneSpec.js b/test/spec/features/modeling/lanes/ResizeLaneSpec.js index 9fbb2ef170..618ff0bb72 100644 --- a/test/spec/features/modeling/lanes/ResizeLaneSpec.js +++ b/test/spec/features/modeling/lanes/ResizeLaneSpec.js @@ -15,7 +15,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/layout/Helper.js b/test/spec/features/modeling/layout/Helper.js index d3ae9b54c5..28dbc9b0e3 100644 --- a/test/spec/features/modeling/layout/Helper.js +++ b/test/spec/features/modeling/layout/Helper.js @@ -50,7 +50,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/ordering/BpmnDiOrderingSpec.js b/test/spec/features/ordering/BpmnDiOrderingSpec.js index 450da69d59..ae141ef5e4 100644 --- a/test/spec/features/ordering/BpmnDiOrderingSpec.js +++ b/test/spec/features/ordering/BpmnDiOrderingSpec.js @@ -16,7 +16,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() { diff --git a/test/spec/features/ordering/BpmnOrderingProviderSpec.js b/test/spec/features/ordering/BpmnOrderingProviderSpec.js index c8a3745a15..c9a40062a7 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'); diff --git a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js index eb30cf114e..77f198da9f 100644 --- a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js +++ b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js @@ -2491,7 +2491,7 @@ 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'); diff --git a/test/spec/features/replace/BpmnReplaceSpec.js b/test/spec/features/replace/BpmnReplaceSpec.js index 0c16001aa1..32e8c7bdc3 100644 --- a/test/spec/features/replace/BpmnReplaceSpec.js +++ b/test/spec/features/replace/BpmnReplaceSpec.js @@ -1184,7 +1184,7 @@ 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; @@ -1203,7 +1203,7 @@ 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; @@ -1346,7 +1346,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 +1368,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 +1396,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 +1420,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 +1464,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) { @@ -1485,7 +1485,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; @@ -1505,7 +1505,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; @@ -1532,7 +1532,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'; @@ -1573,7 +1573,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) { diff --git a/test/spec/features/rules/BpmnRulesSpec.js b/test/spec/features/rules/BpmnRulesSpec.js index cd0812e9cf..bfd9767873 100644 --- a/test/spec/features/rules/BpmnRulesSpec.js +++ b/test/spec/features/rules/BpmnRulesSpec.js @@ -120,7 +120,7 @@ describe('features/modeling/rules - BpmnRules', function() { task2 = elementFactory.createShape({ type: 'bpmn:Task' }); // then - expectCanCreate([task1, task2], 'SequenceFlow', false); + expectCanCreate([ task1, task2 ], 'SequenceFlow', false); })); diff --git a/test/spec/import/ImporterSpec.js b/test/spec/import/ImporterSpec.js index 5978aa621d..defd3ce9bd 100644 --- a/test/spec/import/ImporterSpec.js +++ b/test/spec/import/ImporterSpec.js @@ -36,7 +36,7 @@ describe('import - Importer', function() { var diagram; beforeEach(function() { - diagram = createDiagram(TestContainer.get(this), [CoreModule]); + diagram = createDiagram(TestContainer.get(this), [ CoreModule ]); }); From 704e4872afaeef11bfedaff97e7165ea84ba98c0 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 17 Aug 2022 21:02:21 +0200 Subject: [PATCH 086/989] deps: update karma* --- package-lock.json | 1130 ++++++++++++--------------------------------- package.json | 8 +- 2 files changed, 304 insertions(+), 834 deletions(-) diff --git a/package-lock.json b/package-lock.json index 544615ed52..85b48d0311 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,165 +42,50 @@ "dev": true }, "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", "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", + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", "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" + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.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==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "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==", + "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" } }, "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==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true }, "ms": { @@ -208,6 +93,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, @@ -292,371 +183,52 @@ "@babel/types": "^7.18.6" } }, - "@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==", - "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" - } - } - } - }, "@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==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "requires": { - "@babel/types": "^7.12.5" - }, - "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/types": "^7.18.6" } }, "@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==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", "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" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" }, "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==", + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", "dev": true } } }, - "@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==", - "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" - } - } - } - }, "@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-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==", - "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" - }, - "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/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==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", "dev": true, "requires": { - "@babel/types": "^7.12.1" - }, - "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/types": "^7.18.6" } }, "@babel/helper-split-export-declaration": { @@ -687,136 +259,14 @@ "dev": true }, "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - }, - "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/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/highlight": { @@ -918,6 +368,12 @@ } } }, + "@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 + }, "@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", @@ -1029,9 +485,9 @@ "dev": true }, "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "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": { @@ -1281,12 +737,6 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, - "@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 - }, "@types/component-emitter": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", @@ -1546,18 +996,18 @@ }, "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==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "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==", + "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": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" } } } @@ -2406,28 +1856,33 @@ "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==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", "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", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "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 + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } } } }, @@ -2901,12 +2356,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, "combined-stream": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", @@ -3226,7 +2675,7 @@ "custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, "cyclist": { @@ -3245,9 +2694,9 @@ } }, "date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", + "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": { @@ -3400,9 +2849,15 @@ "dev": true }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true }, "des.js": { @@ -3433,7 +2888,7 @@ "di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, "diagram-js": { @@ -3520,7 +2975,7 @@ "dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, "requires": { "custom-event": "~1.0.0", @@ -3571,7 +3026,7 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, "elliptic": { @@ -3606,7 +3061,7 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true }, "end-of-stream": { @@ -3619,9 +3074,9 @@ } }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", "dev": true, "requires": { "@types/cookie": "^0.4.1", @@ -3637,9 +3092,9 @@ }, "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" @@ -3660,13 +3115,10 @@ } }, "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==", - "dev": true, - "requires": { - "@socket.io/base64-arraybuffer": "~1.0.2" - } + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "dev": true }, "enhanced-resolve": { "version": "4.5.0", @@ -3694,7 +3146,7 @@ "ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", "dev": true }, "errno": { @@ -3769,7 +3221,7 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "escape-string-regexp": { @@ -4896,6 +4348,23 @@ "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, + "requires": { + "ee-first": "1.1.1" + } + }, + "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-cache-dir": { @@ -5047,9 +4516,9 @@ } }, "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", "dev": true }, "for-in": { @@ -6155,15 +5624,15 @@ "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==", + "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": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" } }, @@ -6670,9 +6139,9 @@ "dev": true }, "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true }, "isexe": { @@ -6755,24 +6224,9 @@ "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==", + "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 }, "supports-color": { @@ -6787,9 +6241,9 @@ } }, "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==", + "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": { "debug": "^4.1.1", @@ -6798,18 +6252,18 @@ }, "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" } }, "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==", + "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 }, "ms": { @@ -6827,9 +6281,9 @@ } }, "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "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": { "html-escaper": "^2.0.0", @@ -6965,15 +6419,15 @@ "dev": true }, "karma": { - "version": "6.3.16", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.16.tgz", - "integrity": "sha512-nEU50jLvDe5yvXqkEJRf8IuvddUkOY2x5Xc4WXHz6dxINgGDrgD2uqQWeVrJs4hbfNaotn+HQ1LZJ4yOXrL7xQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.0.tgz", + "integrity": "sha512-s8m7z0IF5g/bS5ONT7wsOavhW4i4aFkzD4u4wgzAQWT4HGUeWI3i21cK2Yz6jndMAeHETp5XuNsRoyGJZXVd4w==", "dev": true, "requires": { + "@colors/colors": "1.5.0", "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", @@ -6989,7 +6443,7 @@ "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^4.2.0", + "socket.io": "^4.4.1", "source-map": "^0.6.1", "tmp": "^0.2.1", "ua-parser-js": "^0.7.30", @@ -7054,17 +6508,28 @@ "optional": true }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "glob-parent": { @@ -7077,9 +6542,9 @@ } }, "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, "is-binary-path": { @@ -7094,7 +6559,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-glob": { @@ -7145,43 +6610,44 @@ } }, "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==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", + "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", "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==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", + "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", "dev": true, "requires": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.1", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", "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==", + "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 }, "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==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", "dev": true, "requires": { - "@babel/core": "^7.7.5", + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" } }, @@ -7209,9 +6675,9 @@ "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==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz", + "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", "dev": true, "requires": { "is-wsl": "^2.2.0", @@ -7404,27 +6870,33 @@ } }, "log4js": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", - "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", + "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": { - "date-format": "^4.0.3", - "debug": "^4.3.3", - "flatted": "^3.2.4", + "date-format": "^4.0.13", + "debug": "^4.3.4", + "flatted": "^3.2.6", "rfdc": "^1.3.0", - "streamroller": "^3.0.2" + "streamroller": "^3.1.2" }, "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" } }, + "flatted": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -7466,19 +6938,18 @@ } }, "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==", + "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": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "semver": "^6.0.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -7523,7 +6994,7 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true }, "memory-fs": { @@ -8806,9 +8277,9 @@ } }, "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "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": { "ee-first": "1.1.1" @@ -9408,13 +8879,13 @@ "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==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "requires": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } @@ -9865,7 +9336,7 @@ "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": { @@ -10705,23 +10176,23 @@ } }, "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.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", "dev": true, "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", "debug": "~4.3.2", - "engine.io": "~6.1.0", - "socket.io-adapter": "~2.3.3", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", "socket.io-parser": "~4.0.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.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -10736,15 +10207,15 @@ } }, "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==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", "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": "4.0.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz", + "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==", "dev": true, "requires": { "@types/component-emitter": "^1.2.10", @@ -10759,9 +10230,9 @@ "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.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -10956,9 +10427,9 @@ } }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, "stream-browserify": { @@ -11001,50 +10472,49 @@ "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==", + "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": "^6.0.1", - "universalify": "^2.0.0" + "jsonfile": "^4.0.0", + "universalify": "^0.1.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==", + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "graceful-fs": "^4.1.6" } }, "ms": { @@ -11821,18 +11291,18 @@ }, "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==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "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==", + "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": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" } } } @@ -11910,15 +11380,15 @@ } }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "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": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true }, "unset-value": { @@ -12039,7 +11509,7 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true }, "uuid": { @@ -12067,7 +11537,7 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, "verror": { @@ -12090,7 +11560,7 @@ "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true }, "watchpack": { diff --git a/package.json b/package.json index 5164b6ae48..52fd0e72a3 100644 --- a/package.json +++ b/package.json @@ -68,12 +68,12 @@ "eslint-plugin-import": "^2.26.0", "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": "^6.4.0", + "karma-chrome-launcher": "^3.1.1", + "karma-coverage": "^2.2.0", "karma-debug-launcher": "0.0.4", "karma-env-preprocessor": "^0.1.1", - "karma-firefox-launcher": "^2.1.1", + "karma-firefox-launcher": "^2.1.2", "karma-ie-launcher": "^1.0.0", "karma-mocha": "^2.0.1", "karma-phantomjs-launcher": "^1.0.4", From b472823f25f7e5c584433e6d66a01d25f0a94c6a Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 17 Aug 2022 21:12:50 +0200 Subject: [PATCH 087/989] fix: make `di` compat property non-enumerable --- lib/util/CompatibilityUtil.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/util/CompatibilityUtil.js b/lib/util/CompatibilityUtil.js index 0e4270274a..fdc8635cd6 100644 --- a/lib/util/CompatibilityUtil.js +++ b/lib/util/CompatibilityUtil.js @@ -65,6 +65,7 @@ export function ensureCompatDiRef(businessObject) { // bpmnElement can have multiple independent DIs if (!has(businessObject, 'di')) { Object.defineProperty(businessObject, 'di', { + enumerable: false, get: function() { throw new Error(DI_ERROR_MESSAGE); } From cf09d28e5ae8da0d4403f8993346866224fd35ba Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 18 Aug 2022 10:06:23 +0200 Subject: [PATCH 088/989] deps: update browserlist --- package-lock.json | 114 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 92 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85b48d0311..883d32c16e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2027,6 +2027,18 @@ "pako": "~1.0.5" } }, + "browserslist": { + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + } + }, "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -2197,6 +2209,12 @@ "min-dash": "^3.0.0" } }, + "caniuse-lite": { + "version": "1.0.30001378", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001378.tgz", + "integrity": "sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA==", + "dev": true + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -2206,7 +2224,7 @@ "chai": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", + "integrity": "sha512-YTHf80rJ8M5/cJoFKEV1y3PnexbGs0vSHjouRRU8gLM05Nc3Mqq9zor/P4SCqB/sgvKRLvya7wHLC1XQ9pTjgQ==", "dev": true, "requires": { "assertion-error": "^1.0.1", @@ -2237,7 +2255,7 @@ "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true }, "chokidar": { @@ -2392,7 +2410,7 @@ "component-event": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.1.4.tgz", - "integrity": "sha1-PeePwoeCOBeH4kvyp8U2vwFCybQ=" + "integrity": "sha512-GMwOG8MnUHP1l8DZx1ztFO0SJTFnIzZnBDkXAj8RM2ntV2A6ALlDxgbMY1Fvxlg6WPQ+5IM/a6vg4PEYbjg/Rw==" }, "concat-map": { "version": "0.0.1", @@ -2854,12 +2872,6 @@ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, "des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -2870,6 +2882,12 @@ "minimalistic-assert": "^1.0.0" } }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", @@ -3029,6 +3047,12 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, + "electron-to-chromium": { + "version": "1.4.224", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.224.tgz", + "integrity": "sha512-dOujC5Yzj0nOVE23iD5HKqrRSDj2SD7RazpZS/b/WX85MtO6/LzKDF4TlYZTBteB+7fvSg5JpWh0sN7fImNF8w==", + "dev": true + }, "elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", @@ -3180,12 +3204,6 @@ "is-regex": "^1.0.4" } }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, "es-shim-unscopables": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", @@ -3941,6 +3959,14 @@ "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" + }, + "dependencies": { + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + } } }, "esquery": { @@ -4179,7 +4205,7 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true }, "fast-deep-equal": { @@ -4295,7 +4321,7 @@ "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, "requires": { "pend": "~1.2.0" @@ -4397,6 +4423,16 @@ "path-exists": "^3.0.0" } }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -4427,6 +4463,12 @@ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, "pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", @@ -5249,7 +5291,7 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true }, "get-intrinsic": { @@ -5754,7 +5796,7 @@ "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==" }, "infer-owner": { "version": "1.0.4", @@ -7699,6 +7741,12 @@ } } }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", @@ -8327,6 +8375,12 @@ "word-wrap": "^1.2.3" } }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, "p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -8520,6 +8574,12 @@ } } }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -11083,7 +11143,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "through2": { @@ -11444,6 +11504,16 @@ "dev": true, "optional": true }, + "update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -11543,7 +11613,7 @@ "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -12727,7 +12797,7 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "dev": true, "requires": { "buffer-crc32": "~0.2.3", From 21c8b96b665b931b81066eb5442fc32a45981344 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 18 Aug 2022 16:21:13 +0200 Subject: [PATCH 089/989] fix: move labels to new plane when collapsing sub process Closes #1695 --- .../behavior/SubProcessPlaneBehavior.js | 9 +++++ .../behavior/SubProcessBehavior.planes.bpmn | 27 +++++++++++++- .../behavior/SubProcessPlaneBehaviorSpec.js | 35 +++++++++++++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/lib/features/modeling/behavior/SubProcessPlaneBehavior.js b/lib/features/modeling/behavior/SubProcessPlaneBehavior.js index 497acfccd0..6aa3444632 100644 --- a/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +++ b/lib/features/modeling/behavior/SubProcessPlaneBehavior.js @@ -411,6 +411,15 @@ SubProcessPlaneBehavior.prototype._moveChildrenToShape = function(source, target return; } + // add external labels that weren't children of sub process + children = children.concat(children.reduce(function(labels, child) { + if (child.label && child.label.parent !== source) { + return labels.concat(child.label); + } + + return labels; + }, [])); + // only change plane if there are no visible children, but don't move them var visibleChildren = children.filter(function(child) { return !child.hidden; 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..ba3d4fc4e0 100644 --- a/test/spec/features/modeling/behavior/SubProcessPlaneBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/SubProcessPlaneBehaviorSpec.js @@ -88,6 +88,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 + const 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 From 2fc2a6676ded54f600b9a8d31bbba48acf96faf5 Mon Sep 17 00:00:00 2001 From: Philipp Date: Fri, 19 Aug 2022 09:07:52 +0200 Subject: [PATCH 090/989] fix(replace): assign default size when replacing with expanded element Closes #1687 --- lib/features/replace/BpmnReplace.js | 12 ++++++++ test/spec/features/replace/BpmnReplaceSpec.js | 30 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/lib/features/replace/BpmnReplace.js b/lib/features/replace/BpmnReplace.js index 612222a642..24678c523c 100644 --- a/lib/features/replace/BpmnReplace.js +++ b/lib/features/replace/BpmnReplace.js @@ -199,6 +199,18 @@ export default function BpmnReplace( // else if property is explicitly set, use it else if (target && has(target, 'isExpanded')) { newElement.isExpanded = target.isExpanded; + + // assign default size of new expanded element + var defaultSize = elementFactory.getDefaultSize(newBusinessObject, { + isExpanded: newElement.isExpanded + }); + + newElement.width = defaultSize.width; + newElement.height = defaultSize.height; + + // keep element centered + newElement.x = element.x - (newElement.width - element.width) / 2; + newElement.y = element.y - (newElement.height - element.height) / 2; } // TODO: need also to respect min/max Size diff --git a/test/spec/features/replace/BpmnReplaceSpec.js b/test/spec/features/replace/BpmnReplaceSpec.js index b9f7d345c0..bc2afc2815 100644 --- a/test/spec/features/replace/BpmnReplaceSpec.js +++ b/test/spec/features/replace/BpmnReplaceSpec.js @@ -28,6 +28,8 @@ import { hasErrorEventDefinition } from 'lib/util/DiUtil'; +import { getMid } from 'diagram-js/lib/layout/LayoutUtil'; + describe('features/replace - bpmn replace', function() { @@ -575,6 +577,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 +1204,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) { @@ -1195,6 +1224,7 @@ describe('features/replace - bpmn replace', function() { }) ); + it('should not drop event type from start event after moving it into event sub process', inject(function(bpmnReplace, elementRegistry, modeling) { From 5680826e9e272da3713811e738738b3a14afe479 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 11:28:00 +0200 Subject: [PATCH 091/989] docs(CONTRIBUTING): document different browser testing --- .github/CONTRIBUTING.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 3e3966511c..860677bbb5 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -64,7 +64,13 @@ npm start Spin up the development environment, re-run tests with every file change: ```sh -TEST_BROWSERS=(Chrome|Firefox|IE) npm run dev +npm run dev +``` + +You may also run against different browsers: + +```sh +TEST_BROWSERS=Firefox,Safari npm run dev ``` Build, lint, and test the project, just as the CI does. From 6809f122f2b128b703206fe06199b278018c97f0 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 10:23:45 +0200 Subject: [PATCH 092/989] test: drop PhantomJS --- .github/workflows/CI.yml | 2 +- package-lock.json | 472 ------------------------------------ package.json | 2 - test/config/karma.distro.js | 2 +- test/config/karma.unit.js | 2 +- 5 files changed, 3 insertions(+), 477 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f08b162ac8..9cf582625c 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -33,7 +33,7 @@ jobs: if: matrix.os == 'ubuntu-latest' env: COVERAGE: 1 - TEST_BROWSERS: Firefox,PhantomJS,ChromeHeadless + TEST_BROWSERS: Firefox,ChromeHeadless run: xvfb-run npm run all - name: Build if: matrix.os != 'ubuntu-latest' diff --git a/package-lock.json b/package-lock.json index 883d32c16e..d0070503e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1435,15 +1435,6 @@ } } }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, "asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -1491,12 +1482,6 @@ } } }, - "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", @@ -1515,30 +1500,12 @@ "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", @@ -1798,15 +1765,6 @@ "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=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", @@ -2215,12 +2173,6 @@ "integrity": "sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA==", "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, "chai": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", @@ -2374,15 +2326,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "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==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -2702,15 +2645,6 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "date-format": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.13.tgz", @@ -2860,12 +2794,6 @@ } } }, - "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": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -3031,16 +2959,6 @@ "stream-shift": "^1.0.0" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -3224,12 +3142,6 @@ "is-symbol": "^1.0.2" } }, - "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==", - "dev": true - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -4169,45 +4081,6 @@ "is-extglob": "^1.0.0" } }, - "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==", - "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" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true - }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", @@ -4578,23 +4451,6 @@ "for-in": "^1.0.1" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -4620,17 +4476,6 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "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=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - } - }, "fs-minipass": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", @@ -5338,15 +5183,6 @@ "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=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -5440,22 +5276,6 @@ "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==" }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "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==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -5626,16 +5446,6 @@ "minimalistic-assert": "^1.0.1" } }, - "hasha": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", - "dev": true, - "requires": { - "is-stream": "^1.0.1", - "pinkie-promise": "^2.0.0" - } - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -5689,17 +5499,6 @@ "requires-port": "^1.0.0" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -6120,12 +5919,6 @@ "call-bind": "^1.0.2" } }, - "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.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -6144,12 +5937,6 @@ "has-symbols": "^1.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-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -6201,12 +5988,6 @@ "isarray": "1.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 - }, "istanbul-instrumenter-loader": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", @@ -6375,12 +6156,6 @@ "argparse": "^2.0.1" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -6393,12 +6168,6 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -6411,39 +6180,12 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "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=", - "dev": true - }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -6755,16 +6497,6 @@ "minimist": "^1.2.3" } }, - "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, - "requires": { - "lodash": "^4.0.1", - "phantomjs-prebuilt": "^2.1.7" - } - }, "karma-safari-launcher": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz", @@ -6788,12 +6520,6 @@ "webpack-merge": "^4.1.5" } }, - "kew": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -6803,15 +6529,6 @@ "is-buffer": "^1.1.5" } }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -7112,21 +6829,6 @@ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true }, - "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 - }, - "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==", - "dev": true, - "requires": { - "mime-db": "~1.37.0" - } - }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -7852,12 +7554,6 @@ "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 - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -8543,37 +8239,6 @@ "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=", - "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 - } - } - }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -8598,21 +8263,6 @@ "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=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -8684,12 +8334,6 @@ "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", @@ -8858,12 +8502,6 @@ "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", @@ -9350,43 +8988,6 @@ "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=", - "dev": true, - "requires": { - "throttleit": "^1.0.0" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -10439,23 +10040,6 @@ "extend-shallow": "^3.0.0" } }, - "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", @@ -11134,12 +10718,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "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", @@ -11239,24 +10817,6 @@ "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 - } - } - }, "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -11304,21 +10864,6 @@ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "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" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -11582,12 +11127,6 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -11610,17 +11149,6 @@ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", diff --git a/package.json b/package.json index 52fd0e72a3..1d7b898b2a 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,6 @@ "karma-firefox-launcher": "^2.1.2", "karma-ie-launcher": "^1.0.0", "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", @@ -84,7 +83,6 @@ "mocha": "^8.4.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": "^16.1.1", "raw-loader": "^1.0.0", diff --git a/test/config/karma.distro.js b/test/config/karma.distro.js index ee80bc7d36..9472316f40 100644 --- a/test/config/karma.distro.js +++ b/test/config/karma.distro.js @@ -1,5 +1,5 @@ // 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 diff --git a/test/config/karma.unit.js b/test/config/karma.unit.js index 43ae038671..38ccb607ea 100644 --- a/test/config/karma.unit.js +++ b/test/config/karma.unit.js @@ -7,7 +7,7 @@ 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' ] var browsers = (process.env.TEST_BROWSERS || 'ChromeHeadless').split(','); // use puppeteer provided Chrome for testing From ac159ce58453272ce79a2b6f74497d4d2da4f70a Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 10:24:04 +0200 Subject: [PATCH 093/989] test: drop various PhantomJS workarounds --- test/spec/draw/BpmnRendererSpec.js | 34 ++----------------- .../features/copy-paste/BpmnCopyPasteSpec.js | 3 -- .../features/palette/PaletteProviderSpec.js | 8 +---- 3 files changed, 3 insertions(+), 42 deletions(-) diff --git a/test/spec/draw/BpmnRendererSpec.js b/test/spec/draw/BpmnRendererSpec.js index 406f8097a1..98a4c22bce 100644 --- a/test/spec/draw/BpmnRendererSpec.js +++ b/test/spec/draw/BpmnRendererSpec.js @@ -484,42 +484,12 @@ 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); } /** diff --git a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js index 865060db85..d2e1c8c03a 100644 --- a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js +++ b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js @@ -918,9 +918,6 @@ describe('features/copy-paste', function() { describe('complex', function() { - // TODO(nikku): drop once legacy PhantomJS is dropped - this.timeout(6000); - beforeEach(bootstrapModeler(complexXML, { modules: testModules, moddleExtensions: { diff --git a/test/spec/features/palette/PaletteProviderSpec.js b/test/spec/features/palette/PaletteProviderSpec.js index 59149d8d32..4a477f5693 100644 --- a/test/spec/features/palette/PaletteProviderSpec.js +++ b/test/spec/features/palette/PaletteProviderSpec.js @@ -93,9 +93,7 @@ describe('features/palette', function() { 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 +124,4 @@ function triggerPaletteEntry(id) { entry.action.click(createMoveEvent(0, 0)); } }); -} - -function isPhantomJS() { - return /PhantomJS/.test(window.navigator.userAgent); } \ No newline at end of file From adee9c206890dd31cdccd380714aea6bf6c00746 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 10:26:25 +0200 Subject: [PATCH 094/989] ci: test against Safari on MacOS --- .github/workflows/CI.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9cf582625c..c000f1711d 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -36,9 +36,13 @@ jobs: TEST_BROWSERS: Firefox,ChromeHeadless run: xvfb-run npm run all - name: Build - if: matrix.os != 'ubuntu-latest' + if: matrix.os == 'windows-latest' env: TEST_BROWSERS: ChromeHeadless + - name: Build + if: matrix.os == 'macos-latest' + env: + TEST_BROWSERS: Safari,ChromeHeadless run: npm run all - name: Upload Coverage uses: codecov/codecov-action@v2 From 095eea4b3da7962a1ec6b8ae2449f94a17c10c1f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 11:02:47 +0200 Subject: [PATCH 095/989] deps: drop karma-ie-launcher Embrace the future! --- package-lock.json | 9 --------- package.json | 1 - 2 files changed, 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index d0070503e2..ec0f24c889 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6479,15 +6479,6 @@ } } }, - "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" - } - }, "karma-mocha": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz", diff --git a/package.json b/package.json index 1d7b898b2a..f32777fce0 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,6 @@ "karma-debug-launcher": "0.0.4", "karma-env-preprocessor": "^0.1.1", "karma-firefox-launcher": "^2.1.2", - "karma-ie-launcher": "^1.0.0", "karma-mocha": "^2.0.1", "karma-safari-launcher": "^1.0.0", "karma-sinon-chai": "^2.0.2", From 3a7acca9bd3de0c70738d4a75be94c6a38101736 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 11:40:00 +0200 Subject: [PATCH 096/989] docs: add hint for testing against safari Co-authored-by: Martin Stamm --- test/config/karma.unit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/config/karma.unit.js b/test/config/karma.unit.js index 38ccb607ea..23eb702261 100644 --- a/test/config/karma.unit.js +++ b/test/config/karma.unit.js @@ -7,7 +7,7 @@ var singleStart = process.env.SINGLE_START; var coverage = process.env.COVERAGE; // configures browsers to run test against -// any of [ 'ChromeHeadless', 'Chrome', 'Firefox' ] +// any of [ 'ChromeHeadless', 'Chrome', 'Firefox', 'Safari' ] var browsers = (process.env.TEST_BROWSERS || 'ChromeHeadless').split(','); // use puppeteer provided Chrome for testing From 69beeff42379a62d31ff41bf0033e5a9bb6675e9 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 17 Aug 2022 16:57:55 +0200 Subject: [PATCH 097/989] fix: render sequence flows always on top Closes https://github.com/bpmn-io/bpmn-js/issues/1716 --- lib/features/ordering/BpmnOrderingProvider.js | 4 +- lib/import/BpmnImporter.js | 5 -- .../features/ordering/BpmnDiOrderingSpec.js | 53 ++++++++++--------- .../ordering/BpmnOrderingProviderSpec.js | 7 ++- test/spec/import/ImporterSpec.js | 38 +++++++++++-- 5 files changed, 70 insertions(+), 37 deletions(-) diff --git a/lib/features/ordering/BpmnOrderingProvider.js b/lib/features/ordering/BpmnOrderingProvider.js index c6ee052228..b290668474 100644 --- a/lib/features/ordering/BpmnOrderingProvider.js +++ b/lib/features/ordering/BpmnOrderingProvider.js @@ -24,10 +24,12 @@ export default function BpmnOrderingProvider(eventBus, canvas, translate) { var orders = [ { type: 'bpmn:SubProcess', order: { level: 6 } }, + + // handle SequenceFlow(s) like message flows and render them always on top { type: 'bpmn:SequenceFlow', order: { - level: 3, + level: 9, containers: [ 'bpmn:Participant', 'bpmn:FlowElementsContainer' diff --git a/lib/import/BpmnImporter.js b/lib/import/BpmnImporter.js index 029dd18720..5894895286 100644 --- a/lib/import/BpmnImporter.js +++ b/lib/import/BpmnImporter.js @@ -186,11 +186,6 @@ BpmnImporter.prototype.add = function(semantic, di, parentElement) { parentElement = this._canvas.findRoot(parentElement); } - // insert sequence flows behind other flow nodes (cf. #727) - if (is(semantic, 'bpmn:SequenceFlow')) { - parentIndex = 0; - } - this._canvas.addConnection(element, parentElement, parentIndex); } else { throw new Error(translate('unknown di {di} for element {semantic}', { diff --git a/test/spec/features/ordering/BpmnDiOrderingSpec.js b/test/spec/features/ordering/BpmnDiOrderingSpec.js index 450da69d59..151e9a2533 100644 --- a/test/spec/features/ordering/BpmnDiOrderingSpec.js +++ b/test/spec/features/ordering/BpmnDiOrderingSpec.js @@ -69,9 +69,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 +110,7 @@ describe('features/modeling - di ordering', function() { ]); }); + it('should order subprocess planes', function() { // given @@ -150,22 +151,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 +161,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 +194,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..a5b61983c0 100644 --- a/test/spec/features/ordering/BpmnOrderingProviderSpec.js +++ b/test/spec/features/ordering/BpmnOrderingProviderSpec.js @@ -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/import/ImporterSpec.js b/test/spec/import/ImporterSpec.js index 5978aa621d..2a39ca3bcc 100644 --- a/test/spec/import/ImporterSpec.js +++ b/test/spec/import/ImporterSpec.js @@ -258,7 +258,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 +274,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); }); }); From cc5fe445280d7ea0e0bee6f7cb8a2876ab82decf Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 17 Aug 2022 17:26:50 +0200 Subject: [PATCH 098/989] test: improve ordering helper --- test/spec/features/ordering/Helper.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/spec/features/ordering/Helper.js b/test/spec/features/ordering/Helper.js index 7b82943ce9..3094221b68 100644 --- a/test/spec/features/ordering/Helper.js +++ b/test/spec/features/ordering/Helper.js @@ -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 ' ); } }); From 1c4d89075c50c2929b0a5369547243b69f78bd26 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 10:39:09 +0200 Subject: [PATCH 099/989] deps: update to webpack@5 + drop raw-loader (replaced by webpack built-ins) --- package-lock.json | 2617 +++++-------------------------------- package.json | 3 +- test/config/karma.unit.js | 2 +- 3 files changed, 305 insertions(+), 2317 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec0f24c889..fcba1a3536 100644 --- a/package-lock.json +++ b/package-lock.json @@ -755,12 +755,38 @@ "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, + "@types/eslint": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "@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/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -799,177 +825,148 @@ "dev": true }, "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", "dev": true }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0" + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, "@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==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", + "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" } }, @@ -1013,9 +1010,15 @@ } }, "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "dev": true }, "acorn-jsx": { @@ -1060,30 +1063,6 @@ "indent-string": "^4.0.0" } }, - "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "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" - } - }, - "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 - }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -1115,12 +1094,6 @@ "normalize-path": "^2.0.0" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1435,53 +1408,6 @@ } } }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "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" - } - } - } - }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -1801,18 +1727,6 @@ } } }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "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==", - "dev": true - }, "body-parser": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", @@ -1881,110 +1795,12 @@ "repeat-element": "^1.1.2" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "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==", "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.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 - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, "browserslist": { "version": "4.21.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", @@ -2018,99 +1834,18 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "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=", - "dev": true - }, "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "glob": { - "version": "7.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 - } - } - }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -2239,16 +1974,6 @@ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -2361,18 +2086,6 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", @@ -2385,18 +2098,6 @@ "utils-merge": "1.0.1" } }, - "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 - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -2418,31 +2119,6 @@ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "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" - } - } - } - }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2490,51 +2166,6 @@ "subarg": "^1.0.0" } }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -2609,25 +2240,6 @@ "which": "^1.2.9" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, "css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", @@ -2639,12 +2251,6 @@ "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, "date-format": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.13.tgz", @@ -2800,16 +2406,6 @@ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "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==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -2873,25 +2469,6 @@ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -2930,12 +2507,6 @@ "void-elements": "^2.0.0" } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, "domify": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.1.tgz", @@ -2947,18 +2518,6 @@ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2971,29 +2530,6 @@ "integrity": "sha512-dOujC5Yzj0nOVE23iD5HKqrRSDj2SD7RazpZS/b/WX85MtO6/LzKDF4TlYZTBteB+7fvSg5JpWh0sN7fImNF8w==", "dev": true }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", @@ -3063,25 +2599,20 @@ "dev": true }, "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true } } }, @@ -3091,15 +2622,6 @@ "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", "dev": true }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -3122,6 +2644,12 @@ "is-regex": "^1.0.4" } }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, "es-shim-unscopables": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", @@ -3945,16 +3473,6 @@ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -4081,12 +3599,6 @@ "is-extglob": "^1.0.0" } }, - "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 - }, "fast-glob": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", @@ -4200,12 +3712,6 @@ "pend": "~1.2.0" } }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -4266,93 +3772,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==", - "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" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "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 - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "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" - } - } - } - }, "find-index": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", @@ -4420,16 +3839,6 @@ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "follow-redirects": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", @@ -4460,16 +3869,6 @@ "map-cache": "^0.2.2" } }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -4486,18 +3885,6 @@ "minipass": "^2.6.0" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5216,6 +4603,12 @@ "is-glob": "^2.0.0" } }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, "glob2base": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", @@ -5406,63 +4799,12 @@ } } }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.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 - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -5499,12 +4841,6 @@ "requires-port": "^1.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.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -5558,12 +4894,6 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -5597,12 +4927,6 @@ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==" }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -6168,6 +5492,12 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, + "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 + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -6531,9 +5861,9 @@ } }, "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, "loader-utils": { @@ -6730,33 +6060,12 @@ "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==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "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 }, - "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=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -6796,30 +6105,27 @@ "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==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "mime": { "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 + }, + "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": { + "mime-db": "1.52.0" + } + }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -6843,18 +6149,6 @@ "min-dash": "^3.8.1" } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -6900,24 +6194,6 @@ "minipass": "^2.9.0" } }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -7244,31 +6520,6 @@ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "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" - } - } - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -7384,56 +6635,6 @@ "whatwg-url": "^5.0.0" } }, - "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 - } - } - }, "node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", @@ -8062,12 +7263,6 @@ "word-wrap": "^1.2.3" } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, "p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -8083,23 +7278,6 @@ "integrity": "sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==", "dev": true }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -8109,19 +7287,6 @@ "callsites": "^3.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==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -8146,19 +7311,6 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true, - "optional": true - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -8211,19 +7363,6 @@ "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==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -8272,12 +7411,6 @@ "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", @@ -8290,12 +7423,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, "promise-polyfill": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.0.tgz", @@ -8319,34 +7446,6 @@ "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 - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -8357,29 +7456,6 @@ "once": "^1.3.1" } }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -8493,18 +7569,6 @@ "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "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", @@ -8551,16 +7615,6 @@ "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -8579,29 +7633,6 @@ "unpipe": "1.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==", - "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" - } - } - } - }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -9039,16 +8070,6 @@ "glob": "^7.1.3" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "rollup": { "version": "2.78.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz", @@ -9516,15 +8537,6 @@ "queue-microtask": "^1.2.2" } }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -9624,28 +8636,12 @@ } } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "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", @@ -9898,12 +8894,6 @@ } } }, - "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", @@ -9923,24 +8913,6 @@ "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==", - "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 - } - } - }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", @@ -10031,15 +9003,6 @@ "extend-shallow": "^3.0.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", @@ -10067,45 +9030,6 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "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==", - "dev": true - }, "streamroller": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.2.tgz", @@ -10539,9 +9463,9 @@ "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.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "tar": { @@ -10651,54 +9575,86 @@ } }, "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz", + "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==", "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.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" }, "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "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" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "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 + }, + "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 }, + "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": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } }, - "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 + "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" + } }, - "terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "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": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "has-flag": "^4.0.0" } } } @@ -10715,25 +9671,6 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "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-svg": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.3.tgz", @@ -10748,12 +9685,6 @@ "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=", - "dev": true - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -10849,12 +9780,6 @@ } } }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -10903,12 +9828,6 @@ } } }, - "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", @@ -10957,24 +9876,6 @@ "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": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -11033,13 +9934,6 @@ } } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true - }, "update-browserslist-db": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", @@ -11065,47 +9959,12 @@ "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=", - "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 - } - } - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -11140,12 +9999,6 @@ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -11153,794 +10006,76 @@ "dev": true }, "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" }, "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 + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "optional": true, "requires": { - "fill-range": "^7.0.1" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "chokidar": { + "ajv-keywords": { "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" - } - } - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "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 - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "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" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "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" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-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": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "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" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "optional": 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 - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "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 - } - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "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" - }, - "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==", - "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" - } - } - } + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true }, "fast-deep-equal": { "version": "3.1.3", @@ -11948,140 +10083,21 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "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==", - "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 - }, - "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==", + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "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==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } } } @@ -12096,22 +10112,10 @@ } }, "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.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==", - "dev": true - } - } + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true }, "whatwg-url": { "version": "5.0.0", @@ -12204,15 +10208,6 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, "workerpool": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", @@ -12268,12 +10263,6 @@ "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", "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 - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index f32777fce0..6c6e4ea5c8 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,6 @@ "npm-run-all": "^4.1.2", "promise-polyfill": "^8.2.0", "puppeteer": "^16.1.1", - "raw-loader": "^1.0.0", "rollup": "^2.78.0", "rollup-plugin-json": "^4.0.0", "rollup-plugin-license": "^2.8.1", @@ -92,7 +91,7 @@ "rollup-plugin-terser": "^7.0.2", "sinon": "^7.5.0", "sinon-chai": "^3.7.0", - "webpack": "^4.46.0" + "webpack": "^5.74.0" }, "dependencies": { "bpmn-moddle": "^7.1.2", diff --git a/test/config/karma.unit.js b/test/config/karma.unit.js index 23eb702261..da077112fa 100644 --- a/test/config/karma.unit.js +++ b/test/config/karma.unit.js @@ -66,7 +66,7 @@ module.exports = function(karma) { }, { test: /\.css|\.bpmn$/, - use: 'raw-loader' + type: 'asset/source' } ].concat(coverage ? { From 3b994fd400b95e11f49d7d74d793780c84b6ecad Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 09:21:45 +0200 Subject: [PATCH 100/989] deps: migrate to `babel-plugin-istanbul` for coverage reporting --- package-lock.json | 542 +++++++++++++++++--------------------- package.json | 4 +- test/config/karma.unit.js | 21 +- 3 files changed, 262 insertions(+), 305 deletions(-) diff --git a/package-lock.json b/package-lock.json index fcba1a3536..66f2a729d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,15 +64,6 @@ "semver": "^6.3.0" }, "dependencies": { - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -484,6 +475,62 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@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", @@ -1432,96 +1479,71 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "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=", + "babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "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 }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "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" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "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=", + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } - }, - "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 - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "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 } } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" } }, "babel-runtime": { @@ -1534,78 +1556,6 @@ "regenerator-runtime": "^0.11.0" } }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "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" - }, - "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 - } - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "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 - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "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 - } - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -1691,12 +1641,6 @@ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true }, - "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", @@ -2020,12 +1964,6 @@ "wrap-ansi": "^7.0.0" } }, - "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", @@ -2105,9 +2043,9 @@ "dev": true }, "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==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -2412,15 +2350,6 @@ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, "devtools-protocol": { "version": "0.0.1019158", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz", @@ -2530,12 +2459,6 @@ "integrity": "sha512-dOujC5Yzj0nOVE23iD5HKqrRSDj2SD7RazpZS/b/WX85MtO6/LzKDF4TlYZTBteB+7fvSg5JpWh0sN7fImNF8w==", "dev": true }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -3409,6 +3332,12 @@ } } }, + "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.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", @@ -4545,6 +4474,12 @@ } } }, + "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-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -4678,23 +4613,6 @@ "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "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 - } - } - }, "has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -4966,15 +4884,6 @@ "side-channel": "^1.0.4" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -5115,15 +5024,6 @@ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.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", @@ -5312,43 +5212,29 @@ "isarray": "1.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==", - "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" - } - }, "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==", + "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 }, "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==", - "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" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "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": { - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -5510,12 +5396,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, "jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -5866,15 +5746,13 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "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=", + "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": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -6740,12 +6618,6 @@ } } }, - "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 - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -7263,6 +7135,24 @@ "word-wrap": "^1.2.3" } }, + "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-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -7272,6 +7162,12 @@ "aggregate-error": "^3.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 + }, "package-name-regex": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.6.tgz", @@ -7393,6 +7289,27 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "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" + }, + "dependencies": { + "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" + } + } + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -8001,15 +7918,6 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "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" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -8564,36 +8472,38 @@ "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" }, "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": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { - "ajv": "^5.0.0" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" }, "dependencies": { "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.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=", + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true }, - "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=", + "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 } } @@ -9003,6 +8913,12 @@ "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": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -9659,6 +9575,44 @@ } } }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + } + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -9745,12 +9699,6 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "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=", - "dev": true - }, "tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", diff --git a/package.json b/package.json index 6c6e4ea5c8..1feb71e6d8 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,11 @@ "*.css" ], "devDependencies": { + "@babel/core": "^7.18.10", "@rollup/plugin-commonjs": "^22.0.2", "@rollup/plugin-node-resolve": "^13.3.0", + "babel-loader": "^8.2.5", + "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.10.0", "camunda-bpmn-moddle": "^4.0.1", "chai": "4.1.2", @@ -67,7 +70,6 @@ "eslint-plugin-bpmn-io": "^0.14.1", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", - "istanbul-instrumenter-loader": "^3.0.1", "karma": "^6.4.0", "karma-chrome-launcher": "^3.1.1", "karma-coverage": "^2.2.0", diff --git a/test/config/karma.unit.js b/test/config/karma.unit.js index da077112fa..1314938b27 100644 --- a/test/config/karma.unit.js +++ b/test/config/karma.unit.js @@ -68,15 +68,22 @@ module.exports = function(karma) { test: /\.css|\.bpmn$/, 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/**' + ] + } ] + ], + } + } } : [] ) }, From 7abefc0871d5f5d53ebde3546f19f07831dd9ee2 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 09:21:58 +0200 Subject: [PATCH 101/989] chore: drop legacy `.babelrc` file --- .babelrc | 3 --- package.json | 1 - 2 files changed, 4 deletions(-) delete mode 100644 .babelrc diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 81eee51efc..0000000000 --- a/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": [ "env" ] -} \ No newline at end of file diff --git a/package.json b/package.json index 1feb71e6d8..2a2ef40d1d 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,6 @@ "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ - ".babelrc", "dist", "lib", "test/util", From b3347e77e7f0e8388babc34375141fec1631eaf8 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 14:45:39 +0200 Subject: [PATCH 102/989] ci: correct Windoof build step --- .github/workflows/CI.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c000f1711d..36073f1073 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -39,6 +39,7 @@ jobs: if: matrix.os == 'windows-latest' env: TEST_BROWSERS: ChromeHeadless + run: npm run all - name: Build if: matrix.os == 'macos-latest' env: From 8d80cf2a1320463d92720ea398150cc8e7c05ac8 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 15:20:08 +0200 Subject: [PATCH 103/989] ci: drop Safari again Apparently not supported in headless environments. --- .github/workflows/CI.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 36073f1073..9cf582625c 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -36,15 +36,10 @@ jobs: TEST_BROWSERS: Firefox,ChromeHeadless run: xvfb-run npm run all - name: Build - if: matrix.os == 'windows-latest' + if: matrix.os != 'ubuntu-latest' env: TEST_BROWSERS: ChromeHeadless run: npm run all - - name: Build - if: matrix.os == 'macos-latest' - env: - TEST_BROWSERS: Safari,ChromeHeadless - run: npm run all - name: Upload Coverage uses: codecov/codecov-action@v2 if: matrix.os == 'ubuntu-latest' From 9f9b717dcc3fba266ec94377938090720cc94904 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 16:01:44 +0200 Subject: [PATCH 104/989] chore(CHANGELOG): update to v9.4.0 --- CHANGELOG.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a5c6907f2..171d8e6e56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ -## 10.0.0 +## 9.4.0 * `FEAT`: allow clipboard to be serialized ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) * `FEAT`: allow cloning of elements ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) @@ -17,12 +17,16 @@ ___Note:__ Yet to be released changes appear here._ * `FIX`: prevent bogus meta-data to be attached on paste ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) * `FIX`: only claim existing IDs ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) * `FIX`: prevent double paste on label creation ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) +* `FIX`: move labels when collapsing sub-process ([#1695](https://github.com/bpmn-io/bpmn-js/issues/1695)) +* `FIX`: assign default size when expanding element ([#1687](https://github.com/bpmn-io/bpmn-js/issues/1687)) +* `FIX`: render sequence flows always on top ([#1716](https://github.com/bpmn-io/bpmn-js/issues/1716)) +* `DEPS`: update to `diagram-js@8.9.0` ## 9.3.2 * `FIX`: prevent unnecessary scrollbar ([#1692](https://github.com/bpmn-io/bpmn-js/issues/1692)) * `FIX`: check for replacement using actual target ([#1699](https://github.com/bpmn-io/bpmn-js/pull/1699)) -* `DEPS`: update to diagram-js@8.7.1 +* `DEPS`: update to `diagram-js@8.7.1` ## 9.3.1 @@ -126,7 +130,7 @@ ___Note:__ Yet to be released changes appear here._ * `FIX`: set label color on `bpmndi:BPMNLabel#color` ([#1543](https://github.com/bpmn-io/bpmn-js/pull/1543)) * `FIX`: don't create illegal `bpmndi:BPMNEdge#waypoints` property ([#1544](https://github.com/bpmn-io/bpmn-js/issues/1544)) * `FIX`: correct direct editing on touch devices -* `DEPS`: update to diagram-js@7.8.2 +* `DEPS`: update to `diagram-js@7.8.2` ## 8.8.3 From a53c6f1e9549bf4f543b95923fe5619da29b8f9c Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 16:06:32 +0200 Subject: [PATCH 105/989] deps: update to diagram-js@8.9.0 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66f2a729d9..3e04f43550 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2363,12 +2363,12 @@ "dev": true }, "diagram-js": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.8.0.tgz", - "integrity": "sha512-isDblySC/k8dOUA1yevLPa0rdXT6Zv6+S6ZFv4CUZBk4Bgtv+3MJdnL+hVzeKPVuvlYGsEM42AyXHCW+35QJQg==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.9.0.tgz", + "integrity": "sha512-577bUEbkwZ7id4SCXcD2qrlKoRPXry2SDSPt5T6tEOjwKrTllKr5d1HZoJzGws4VMQq5fmY51Gce1iFT9S4Dlw==", "requires": { "css.escape": "^1.5.1", - "didi": "^8.0.0", + "didi": "^8.0.1", "hammerjs": "^2.0.1", "inherits-browser": "0.0.1", "min-dash": "^3.5.2", diff --git a/package.json b/package.json index 2a2ef40d1d..50c3af5f6a 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "bpmn-moddle": "^7.1.2", "css.escape": "^1.5.1", - "diagram-js": "^8.8.0", + "diagram-js": "^8.9.0", "diagram-js-direct-editing": "^1.7.0", "ids": "^1.0.0", "inherits-browser": "0.0.1", From f5d0e18114b09777abd0d126b79c128cd87c4598 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 16:06:53 +0200 Subject: [PATCH 106/989] deps: update to tiny-svg@2.2.4 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e04f43550..25d435a224 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9626,9 +9626,9 @@ "dev": true }, "tiny-svg": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.3.tgz", - "integrity": "sha512-u5KGg889pD1W2c9GlLrTnAGzIkAO00/VXZGyzeiGHw+b9er8McLO0SnhxPQQDwDqFO0MrJ825AEsRUoTiDZFuQ==" + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.4.tgz", + "integrity": "sha512-NOi39lBknf4UdDEahNkbEAJnzhu1ZcN2j75IS2vLRmIhsfxdZpTChfLKBcN1ShplVmPIXJAIafk6YY5/Aa80lQ==" }, "tmp": { "version": "0.2.1", diff --git a/package.json b/package.json index 50c3af5f6a..de34d7a107 100644 --- a/package.json +++ b/package.json @@ -104,6 +104,6 @@ "min-dash": "^3.5.2", "min-dom": "^3.2.0", "object-refs": "^0.3.0", - "tiny-svg": "^2.2.2" + "tiny-svg": "^2.2.4" } } From e68c7e08fcae2751b65cea127078750d4c972a44 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 19 Aug 2022 16:07:23 +0200 Subject: [PATCH 107/989] deps: update to min-dom@3.2.1 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 25d435a224..9772066018 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6016,9 +6016,9 @@ "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" }, "min-dom": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.0.tgz", - "integrity": "sha512-IUNBVNMFR0fND5RM2rBPqTG/qch8SOWtxpNgc2L+yHqp8raz3tEoe9SfXObHuidyLSMrbF7gSnBPrFGaUHBnHg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", + "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", "requires": { "component-event": "^0.1.4", "domify": "^1.3.1", diff --git a/package.json b/package.json index de34d7a107..42d16266de 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "ids": "^1.0.0", "inherits-browser": "0.0.1", "min-dash": "^3.5.2", - "min-dom": "^3.2.0", + "min-dom": "^3.2.1", "object-refs": "^0.3.0", "tiny-svg": "^2.2.4" } From dc684d773c04fb112c16bb113c73d582992bff3b Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Mon, 22 Aug 2022 13:55:14 +0200 Subject: [PATCH 108/989] deps: update to `bpmn-moddle@7.1.3` --- package-lock.json | 20 ++++++++++---------- package.json | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 563abb5ed6..f1dfa3ab26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2324,13 +2324,13 @@ "dev": true }, "bpmn-moddle": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-7.1.2.tgz", - "integrity": "sha512-Sax4LokRCTqlg26njjULN3ZGtCmwH5gZVUZTRF0jwJk+YpMQhSfSoUECxjNv8OROoLxu8Z+MjdOHIxgvJf7KwA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-7.1.3.tgz", + "integrity": "sha512-ZcBfw0NSOdYTSXFKEn7MOXHItz7VfLZTrFYKO8cK6V8ZzGjCcdiLIOiw7Lctw1PJsihhLiZQS8Htj2xKf+NwCg==", "requires": { "min-dash": "^3.5.2", "moddle": "^5.0.2", - "moddle-xml": "^9.0.5" + "moddle-xml": "^9.0.6" } }, "brace-expansion": { @@ -7730,17 +7730,17 @@ "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==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/moddle/-/moddle-5.0.3.tgz", + "integrity": "sha512-EjnQkSaZClHMsM3H/guBy9h7AmHUICH0Pf8H1VnnYGUXy2hkZQU4gqEAyHywJzMRAhYX87pXjH2NtyigF7evkA==", "requires": { "min-dash": "^3.0.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==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-9.0.6.tgz", + "integrity": "sha512-tl0reHpsY/aKlLGhXeFlQWlYAQHFxTkFqC8tq8jXRYpQSnLVw13T6swMaourLd7EXqHdWsc+5ggsB+fEep6xZQ==", "requires": { "min-dash": "^3.5.2", "moddle": "^5.0.2", diff --git a/package.json b/package.json index bbbecb0b29..035386873d 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "webpack": "^4.46.0" }, "dependencies": { - "bpmn-moddle": "^7.1.2", + "bpmn-moddle": "^7.1.3", "css.escape": "^1.5.1", "diagram-js": "^8.8.0", "diagram-js-direct-editing": "^1.7.0", From eed840404bcd43c60f676bc1ce9e121b085480fb Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 22 Aug 2022 16:46:21 +0200 Subject: [PATCH 109/989] test: `const` -> `var` --- .../features/modeling/behavior/SubProcessPlaneBehaviorSpec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/spec/features/modeling/behavior/SubProcessPlaneBehaviorSpec.js b/test/spec/features/modeling/behavior/SubProcessPlaneBehaviorSpec.js index ba3d4fc4e0..3ac7da92bd 100644 --- a/test/spec/features/modeling/behavior/SubProcessPlaneBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/SubProcessPlaneBehaviorSpec.js @@ -113,7 +113,7 @@ describe('features/modeling/behavior - subprocess planes', function() { }); // then - const plane = elementRegistry.get('SubProcess_2_plane'); + var plane = elementRegistry.get('SubProcess_2_plane'); expect(sequenceFlow.parent).to.equal(plane); expect(startEvent.parent).to.equal(plane); From 04e82256c734297cd3512cc14e4957ba58c40320 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 22 Aug 2022 17:15:29 +0200 Subject: [PATCH 110/989] chore(CHANGELOG): update --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 171d8e6e56..74d5bf4110 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ ___Note:__ Yet to be released changes appear here._ * `FIX`: assign default size when expanding element ([#1687](https://github.com/bpmn-io/bpmn-js/issues/1687)) * `FIX`: render sequence flows always on top ([#1716](https://github.com/bpmn-io/bpmn-js/issues/1716)) * `DEPS`: update to `diagram-js@8.9.0` +* `DEPS`: update to `bpmn-moddle@7.1.3` ## 9.3.2 From be07ee8d54b4ab96274df9d4e17d89cf00738778 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 22 Aug 2022 17:18:44 +0200 Subject: [PATCH 111/989] 9.4.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8c82589b4a..f5b98708fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.3.2", + "version": "9.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 8f121fe18a..10cd657109 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.3.2", + "version": "9.4.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 1bdbaeb76c28380a58f75035ee4a147b55d0092f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 23 Aug 2022 14:48:41 +0200 Subject: [PATCH 112/989] chore: update `package-lock` file --- package-lock.json | 13641 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 13584 insertions(+), 57 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5b98708fc..a6ed130b79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,13514 @@ { "name": "bpmn-js", "version": "9.4.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "bpmn-js", + "version": "9.4.0", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "bpmn-moddle": "^7.1.3", + "css.escape": "^1.5.1", + "diagram-js": "^8.9.0", + "diagram-js-direct-editing": "^1.7.0", + "ids": "^1.0.0", + "inherits-browser": "0.0.1", + "min-dash": "^3.5.2", + "min-dom": "^3.2.1", + "object-refs": "^0.3.0", + "tiny-svg": "^2.2.4" + }, + "devDependencies": { + "@babel/core": "^7.18.10", + "@rollup/plugin-commonjs": "^22.0.2", + "@rollup/plugin-node-resolve": "^13.3.0", + "babel-loader": "^8.2.5", + "babel-plugin-istanbul": "^6.1.1", + "bpmn-font": "^0.10.0", + "camunda-bpmn-moddle": "^4.0.1", + "chai": "4.1.2", + "chai-match": "^1.1.1", + "cpx": "^1.5.0", + "cross-env": "^7.0.3", + "del": "^6.0.0", + "eslint": "^8.22.0", + "eslint-plugin-bpmn-io": "^0.14.1", + "eslint-plugin-import": "^2.26.0", + "execa": "^5.1.1", + "karma": "^6.4.0", + "karma-chrome-launcher": "^3.1.1", + "karma-coverage": "^2.2.0", + "karma-debug-launcher": "0.0.4", + "karma-env-preprocessor": "^0.1.1", + "karma-firefox-launcher": "^2.1.2", + "karma-mocha": "^2.0.1", + "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", + "mocha-test-container-support": "0.2.0", + "npm-run-all": "^4.1.2", + "promise-polyfill": "^8.2.0", + "puppeteer": "^16.1.1", + "rollup": "^2.78.0", + "rollup-plugin-json": "^4.0.0", + "rollup-plugin-license": "^2.8.1", + "rollup-plugin-replace": "^2.2.0", + "rollup-plugin-terser": "^7.0.2", + "sinon": "^7.5.0", + "sinon-chai": "^3.7.0", + "webpack": "^5.74.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "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, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", + "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", + "dev": true, + "dependencies": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/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/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "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, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@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-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", + "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", + "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.11", + "@babel/types": "^7.18.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/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/@babel/traverse/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/types": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types/node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "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, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/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/eslintrc/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/@eslint/eslintrc/node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/eslintrc/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/@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/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/@humanwhocodes/config-array/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/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@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, + "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" + } + }, + "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, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "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" + } + }, + "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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "22.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz", + "integrity": "sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==", + "dev": true, + "dependencies": { + "@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" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0" + } + }, + "node_modules/@rollup/plugin-commonjs/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/@rollup/plugin-commonjs/node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.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/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.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/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@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 + }, + "node_modules/@rollup/pluginutils/node_modules/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 + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@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==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1", + "@sinonjs/samsam": "^3.1.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", + "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.3.0", + "array-from": "^2.1.1", + "lodash": "^4.17.15" + } + }, + "node_modules/@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/@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/@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 + }, + "node_modules/@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 + }, + "node_modules/@types/eslint": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@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 + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", + "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@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/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "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 + }, + "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 + }, + "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" + } + }, + "node_modules/accepts/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/accepts/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/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/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/agent-base/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/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "dependencies": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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/array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/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/array-includes/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/array-includes/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/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/array-includes/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/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/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/array.prototype.flat/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/array.prototype.flat/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/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/array.prototype.flat/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/array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/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/array.prototype.flatmap/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/array.prototype.flatmap/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/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/array.prototype.flatmap/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/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, + "engines": { + "node": "*" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/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, + "engines": { + "node": "*" + } + }, + "node_modules/babel-loader/node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/babel-loader/node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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=", + "dev": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "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 + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/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, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/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/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "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.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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/bpmn-moddle": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-7.1.3.tgz", + "integrity": "sha512-ZcBfw0NSOdYTSXFKEn7MOXHItz7VfLZTrFYKO8cK6V8ZzGjCcdiLIOiw7Lctw1PJsihhLiZQS8Htj2xKf+NwCg==", + "dependencies": { + "min-dash": "^3.5.2", + "moddle": "^5.0.2", + "moddle-xml": "^9.0.6" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "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 + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cache-base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "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/caniuse-lite": { + "version": "1.0.30001378", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001378.tgz", + "integrity": "sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-YTHf80rJ8M5/cJoFKEV1y3PnexbGs0vSHjouRRU8gLM05Nc3Mqq9zor/P4SCqB/sgvKRLvya7wHLC1XQ9pTjgQ==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-match": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chai-match/-/chai-match-1.1.1.tgz", + "integrity": "sha1-OfsKLmt8j2OG3P6tSNFIqRX6bEY=", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "dev": true, + "dependencies": { + "anymatch": "^1.3.0", + "async-each": "^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" + }, + "optionalDependencies": { + "fsevents": "^1.0.0" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "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, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "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, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/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/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commenting": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/commenting/-/commenting-1.1.0.tgz", + "integrity": "sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/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/component-event": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.1.4.tgz", + "integrity": "sha512-GMwOG8MnUHP1l8DZx1ztFO0SJTFnIzZnBDkXAj8RM2ntV2A6ALlDxgbMY1Fvxlg6WPQ+5IM/a6vg4PEYbjg/Rw==" + }, + "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 + }, + "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": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "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, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cpx": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz", + "integrity": "sha1-GFvgGFEdhycN7czCkxceN2VauI8=", + "dev": true, + "dependencies": { + "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" + }, + "bin": { + "cpx": "bin/index.js" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-env/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-env/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/cross-env/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/cross-env/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/cross-env/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/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/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 + }, + "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, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/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" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/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 + }, + "node_modules/del/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/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, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">= 0.8" + } + }, + "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/devtools-protocol": { + "version": "0.0.1019158", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz", + "integrity": "sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==", + "dev": true + }, + "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": "8.9.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.9.0.tgz", + "integrity": "sha512-577bUEbkwZ7id4SCXcD2qrlKoRPXry2SDSPt5T6tEOjwKrTllKr5d1HZoJzGws4VMQq5fmY51Gce1iFT9S4Dlw==", + "dependencies": { + "css.escape": "^1.5.1", + "didi": "^8.0.1", + "hammerjs": "^2.0.1", + "inherits-browser": "0.0.1", + "min-dash": "^3.5.2", + "min-dom": "^3.2.0", + "object-refs": "^0.3.0", + "path-intersection": "^2.2.1", + "tiny-svg": "^2.2.2" + } + }, + "node_modules/diagram-js-direct-editing": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-1.7.0.tgz", + "integrity": "sha512-ZfTLF4hdWr7NSoruwxGvVmu7aVaUjWRXjwgK5dx58LbXAsNjBS3Ap7zjVuGxjWUpCZ/MMwyZ00lpTHPH2P7BFQ==", + "dependencies": { + "min-dash": "^3.5.2", + "min-dom": "^3.1.3" + }, + "peerDependencies": { + "diagram-js": "^0.x || ^1.x || ^2.x || ^3.x || ^4.x || ^5.x || ^6.x || ^7.x || ^8.x" + } + }, + "node_modules/didi": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/didi/-/didi-8.0.1.tgz", + "integrity": "sha512-7oXiXbp8DHE3FfQsVBkc2pwePo3Jy2uyGS9trAeBmfxiZAP4WV23LWokRpMmyl3hlu8OEAsyMxx19i5P6TVaJQ==" + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/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": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/domify": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.1.tgz", + "integrity": "sha512-x18nuiDHMCZGXr4KJSRMf/TWYtiaRo6RX8KN9fEbW54mvbQ6pieUuerC2ahBg+kEp1wycFj8MPUI0WkIOw5E9w==" + }, + "node_modules/duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "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 + }, + "node_modules/electron-to-chromium": { + "version": "1.4.224", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.224.tgz", + "integrity": "sha512-dOujC5Yzj0nOVE23iD5HKqrRSDj2SD7RazpZS/b/WX85MtO6/LzKDF4TlYZTBteB+7fvSg5JpWh0sN7fImNF8w==", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "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.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/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/engine.io/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/engine.io/node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "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/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enhanced-resolve/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "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": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/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/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.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-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/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/eslint-plugin-bpmn-io": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.14.1.tgz", + "integrity": "sha512-W7JTh/wnwzeUH+FMuLSsGeonVaMwxX6s+hopaeRLAcfYG06HwI/NOcPzPQxBTDYJ19xFBiqj24zKcppf3mvFxg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.18.10", + "@babel/eslint-parser": "^7.18.9", + "@babel/plugin-syntax-jsx": "^7.18.6", + "eslint-plugin-mocha": "^10.1.0", + "eslint-plugin-react": "^7.30.1" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/helper-module-transforms": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/helpers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/eslint-plugin-bpmn-io/node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/eslint-plugin-bpmn-io/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-plugin-bpmn-io/node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-plugin-bpmn-io/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-plugin-bpmn-io/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/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/eslint-plugin-import/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/eslint-plugin-import/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/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.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-mocha": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.1.0.tgz", + "integrity": "sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "rambda": "^7.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.30.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", + "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.1", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react/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/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/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.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.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/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": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "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, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/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/eslint/node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/eslint/node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint/node_modules/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, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/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/eslint/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/eslint/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/eslint/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/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/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/eslint/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/eslint/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/eslint/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/eslint/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/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/eslint/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/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "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/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/execa/node_modules/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dev": true, + "dependencies": { + "fill-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "dependencies": { + "@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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/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, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-glob/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob/node_modules/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, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob/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/fast-glob/node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-glob/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/fast-json-stable-stringify": { + "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 + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/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, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "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": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "optional": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "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/fsevents": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", + "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", + "bundleDependencies": [ + "node-pre-gyp" + ], + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/fsevents/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/are-we-there-yet": { + "version": "1.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/fsevents/node_modules/balanced-match": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/fsevents/node_modules/chownr": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/code-point-at": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/fsevents/node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/fsevents/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/detect-libc": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/fsevents/node_modules/fs-minipass": { + "version": "1.2.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fsevents/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/gauge": { + "version": "2.7.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "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" + } + }, + "node_modules/fsevents/node_modules/glob": { + "version": "7.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": 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": "*" + } + }, + "node_modules/fsevents/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/ignore-walk": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/fsevents/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/fsevents/node_modules/inherits": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/ini": { + "version": "1.3.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/minimatch": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/minimist": { + "version": "0.0.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/minipass": { + "version": "2.3.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/fsevents/node_modules/minizlib": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fsevents/node_modules/mkdirp": { + "version": "0.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/fsevents/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/needle": { + "version": "2.2.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/fsevents/node_modules/node-pre-gyp": { + "version": "0.10.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "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" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/fsevents/node_modules/nopt": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/fsevents/node_modules/npm-bundled": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/npm-packlist": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "node_modules/fsevents/node_modules/npmlog": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/fsevents/node_modules/number-is-nan": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/fsevents/node_modules/os-homedir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/osenv": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/fsevents/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/process-nextick-args": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/rc": { + "version": "1.2.8", + "dev": true, + "inBundle": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/fsevents/node_modules/rc/node_modules/minimist": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/fsevents/node_modules/rimraf": { + "version": "2.6.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/fsevents/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/sax": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/semver": { + "version": "5.6.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/fsevents/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/signal-exit": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fsevents/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/tar": { + "version": "4.4.8", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/fsevents/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/wide-align": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/fsevents/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/yallist": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name/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/function.prototype.name/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/function.prototype.name/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name/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/function.prototype.name/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/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/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-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic/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/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-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==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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": "*" + } + }, + "node_modules/glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "dependencies": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "dependencies": { + "is-glob": "^2.0.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true, + "dependencies": { + "find-index": "^0.1.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag/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-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "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, + "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/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/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/https-proxy-agent/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/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==", + "dev": true, + "engines": { + "node": ">=10.17.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, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ids": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ids/-/ids-1.0.0.tgz", + "integrity": "sha512-Zvtq1xUto4LttpstyOlFum8lKx+i1OmRfg+6A9drFS9iSZsDPMHG4Sof/qwNR4kCU7jBeWFPrY2ocHxiz7cCRw==" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==" + }, + "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.0.1", + "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.0.1.tgz", + "integrity": "sha512-kaDA3DkCdCpvrKIo/1T/3yVn+qpFUHLjYtSHmTYewb+QfjfaQy6FGQ7LwBu7st0tG9UvYad/XAlqQmdIh6CICw==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "optional": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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-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-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=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-builtin-module": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-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-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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dev": true, + "dependencies": { + "is-primitive": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.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": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-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-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "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/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "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.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/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-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/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-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-lib-source-maps/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/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/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==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/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/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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 + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/karma": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.0.tgz", + "integrity": "sha512-s8m7z0IF5g/bS5ONT7wsOavhW4i4aFkzD4u4wgzAQWT4HGUeWI3i21cK2Yz6jndMAeHETp5XuNsRoyGJZXVd4w==", + "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.4.1", + "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": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", + "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", + "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", + "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-coverage/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/karma-coverage/node_modules/istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "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/karma-coverage/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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, + "dependencies": { + "open": "^7.3.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.2", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz", + "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", + "dev": true, + "dependencies": { + "is-wsl": "^2.2.0", + "which": "^2.0.1" + } + }, + "node_modules/karma-firefox-launcher/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/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-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==", + "dev": true, + "peerDependencies": { + "chai": ">=3.5.0", + "sinon": ">=2.1.0", + "sinon-chai": ">=2.9.0" + } + }, + "node_modules/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, + "dependencies": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "webpack-merge": "^4.1.5" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "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/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "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/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, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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/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/karma/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/karma/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "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/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/karma/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/karma/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/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/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/karma/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/karma/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/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "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.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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/flatted": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "dev": 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/lolex": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", + "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==", + "dev": true + }, + "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/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/magic-string/node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==" + }, + "node_modules/math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "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/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 + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-dash": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", + "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" + }, + "node_modules/min-dom": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", + "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", + "dependencies": { + "component-event": "^0.1.4", + "domify": "^1.3.1", + "indexof": "0.0.1", + "matches-selector": "^1.2.0", + "min-dash": "^3.8.1" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "optional": true + }, + "node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "optional": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/mkdirp/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mocha": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", + "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", + "dev": true, + "dependencies": { + "@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" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 10.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "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/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/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/mocha/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/mocha/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/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, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/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/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/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, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/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/mocha/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "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/mocha/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/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/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/mocha/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha/node_modules/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, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha/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/mocha/node_modules/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, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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/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/mocha/node_modules/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, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/mocha/node_modules/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, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/mocha/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/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/mocha/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mocha/node_modules/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, + "engines": { + "node": ">=10" + } + }, + "node_modules/moddle": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/moddle/-/moddle-5.0.3.tgz", + "integrity": "sha512-EjnQkSaZClHMsM3H/guBy9h7AmHUICH0Pf8H1VnnYGUXy2hkZQU4gqEAyHywJzMRAhYX87pXjH2NtyigF7evkA==", + "dependencies": { + "min-dash": "^3.0.0" + } + }, + "node_modules/moddle-xml": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-9.0.6.tgz", + "integrity": "sha512-tl0reHpsY/aKlLGhXeFlQWlYAQHFxTkFqC8tq8jXRYpQSnLVw13T6swMaourLd7EXqHdWsc+5ggsB+fEep6xZQ==", + "dependencies": { + "min-dash": "^3.5.2", + "moddle": "^5.0.2", + "saxen": "^8.1.2" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "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/nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", + "dev": true, + "optional": true + }, + "node_modules/nanoid": { + "version": "3.1.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", + "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/nise": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz", + "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==", + "dev": true, + "dependencies": { + "@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" + } + }, + "node_modules/nise/node_modules/lolex": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", + "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/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, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "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" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/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, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/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, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/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, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/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, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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==" + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.assign/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.assign/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/object.assign/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.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.entries/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/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/object.entries/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/object.entries/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/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/object.entries/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.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/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/object.fromentries/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/object.fromentries/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/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/object.fromentries/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.hasown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/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/object.hasown/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/object.hasown/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/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/object.hasown/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.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "dependencies": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/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/object.values/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/object.values/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/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/object.values/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/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/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/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-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "dependencies": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/path-intersection/-/path-intersection-2.2.1.tgz", + "integrity": "sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA==" + }, + "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": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-to-regexp/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", + "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "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/preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/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 + }, + "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/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 + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-16.1.1.tgz", + "integrity": "sha512-lBneizsNF0zi1/iog9c0ogVnvDHJG4IWpkdIAgE2oiDKhr0MJRV8JeM2xbhUwCwhDJXjjVS2TNCZdLsMp9Ojdg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1019158", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.8.1" + }, + "engines": { + "node": ">=14.1.0" + } + }, + "node_modules/puppeteer/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/puppeteer/node_modules/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, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/puppeteer/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/puppeteer/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/puppeteer/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/puppeteer/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/puppeteer/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/puppeteer/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/puppeteer/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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/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/rambda": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.2.1.tgz", + "integrity": "sha512-Wswj8ZvzdI3VhaGPkZAxaCTwuMmGtgWt7Zxsgyo4P+iTmVnkojvyWaOep5q3ZjMIecW0wtQa66GWxaKkZ24RAA==", + "dev": true + }, + "node_modules/randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "dependencies": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/randomatic/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randomatic/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "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/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==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/readdirp/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/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, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/expand-brackets/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "node_modules/regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "dependencies": { + "is-equal-shallow": "^0.1.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/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 + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "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/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.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.5" + } + }, + "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/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "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": "2.78.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz", + "integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/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==", + "deprecated": "This module has been deprecated and is no longer maintained. Please use @rollup/plugin-json.", + "dev": true, + "dependencies": { + "rollup-pluginutils": "^2.5.0" + } + }, + "node_modules/rollup-plugin-license": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.8.1.tgz", + "integrity": "sha512-VYd9pzaNL7NN6xQp93XiiCV2UoduXgSmTcz6rl9bHPdiifT6yH3Zw/omEr73Rq8TIyN4nqJACBbKIT/2eE66wg==", + "dev": true, + "dependencies": { + "commenting": "~1.1.0", + "glob": "~7.2.0", + "lodash": "~4.17.21", + "magic-string": "~0.26.2", + "mkdirp": "~1.0.4", + "moment": "~2.29.3", + "package-name-regex": "~2.0.6", + "spdx-expression-validate": "~2.0.0", + "spdx-satisfies": "~5.0.1" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "rollup": "^1.0.0 || ^2.0.0" + } + }, + "node_modules/rollup-plugin-license/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/rollup-plugin-license/node_modules/magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/rollup-plugin-license/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup-plugin-license/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/rollup-plugin-license/node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/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==", + "deprecated": "This module has moved and is now available at @rollup/plugin-replace. Please update your dependencies. This version is no longer maintained.", + "dev": true, + "dependencies": { + "magic-string": "^0.25.2", + "rollup-pluginutils": "^2.6.0" + } + }, + "node_modules/rollup-plugin-replace/node_modules/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, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/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, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/rollup-plugin-terser/node_modules/@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, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.6.0.tgz", + "integrity": "sha512-aGQwspEF8oPKvg37u3p7h0cYNwmJR1sCBMZGZ5b9qy8HGtETknqjzcxrDRrcAnJNXN18lBH4Q9vZYth/p4n8jQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.0", + "micromatch": "^3.1.10" + } + }, + "node_modules/rollup-pluginutils/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/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 + }, + "node_modules/rollup-pluginutils/node_modules/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, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-pluginutils/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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-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": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxen": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/saxen/-/saxen-8.1.2.tgz", + "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/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/semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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 + }, + "node_modules/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, + "dependencies": { + "@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" + } + }, + "node_modules/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, + "peerDependencies": { + "chai": "^4.0.0", + "sinon": ">=4.0.0" + } + }, + "node_modules/sinon/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", + "dev": true + }, + "node_modules/socket.io-parser": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz", + "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==", + "dev": true, + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/socket.io-parser/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/socket.io-parser/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/socket.io/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/socket.io/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/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/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=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/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==", + "dev": true + }, + "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.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "dev": true, + "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/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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/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, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "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/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/streamroller/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/streamroller/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/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/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.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/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 + }, + "node_modules/string-width/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/string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/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/string.prototype.matchall/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/string.prototype.matchall/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/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/string.prototype.matchall/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/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=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend/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/string.prototype.trimend/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/string.prototype.trimend/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend/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/string.prototype.trimend/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/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart/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/string.prototype.trimstart/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/string.prototype.trimstart/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart/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/string.prototype.trimstart/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/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "dependencies": { + "minimist": "^1.1.0" + } + }, + "node_modules/subarg/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dev": true, + "optional": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-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/tar/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true + }, + "node_modules/tar/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "optional": true + }, + "node_modules/terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz", + "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.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-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/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, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/terser-webpack-plugin/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/terser/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/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": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/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/test-exclude/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/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/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/tiny-svg": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.4.tgz", + "integrity": "sha512-NOi39lBknf4UdDEahNkbEAJnzhu1ZcN2j75IS2vLRmIhsfxdZpTChfLKBcN1ShplVmPIXJAIafk6YY5/Aa80lQ==" + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "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, + "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/type-is/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/type-is/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/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, + "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/unbox-primitive/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/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-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/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==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_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/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/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "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.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/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/webpack/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/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-boxed-primitive/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/which-boxed-primitive/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/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wide-align/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", + "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", + "dev": true + }, + "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/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/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.8.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", + "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", + "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/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/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/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "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" + } + } + }, "dependencies": { "@ampproject/remapping": { "version": "2.2.0", @@ -1066,13 +14572,15 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true + "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 + "dev": true, + "requires": {} }, "agent-base": { "version": "6.0.2", @@ -1776,7 +15284,8 @@ "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==" + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true }, "builtin-modules": { "version": "1.1.1", @@ -2511,7 +16020,8 @@ "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -3877,7 +17387,9 @@ }, "chownr": { "version": "1.1.1", - "bundled": true + "bundled": true, + "dev": true, + "optional": true }, "code-point-at": { "version": "1.1.0", @@ -3933,6 +17445,8 @@ "fs-minipass": { "version": "1.2.5", "bundled": true, + "dev": true, + "optional": true, "requires": { "minipass": "^2.2.1" } @@ -4013,6 +17527,12 @@ "dev": true, "optional": true }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, @@ -4046,6 +17566,8 @@ "minipass": { "version": "2.3.5", "bundled": true, + "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4054,6 +17576,8 @@ "minizlib": { "version": "1.2.1", "bundled": true, + "dev": true, + "optional": true, "requires": { "minipass": "^2.2.1" } @@ -4241,7 +17765,9 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4273,24 +17799,24 @@ "dev": true, "optional": true }, - "string-width": { - "version": "1.0.2", + "string_decoder": { + "version": "1.1.1", "bundled": true, "dev": true, "optional": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "safe-buffer": "~5.1.0" } }, - "string_decoder": { - "version": "1.1.1", + "string-width": { + "version": "1.0.2", "bundled": true, "dev": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -4308,6 +17834,21 @@ "dev": true, "optional": true }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, "util-deprecate": { "version": "1.0.2", "bundled": true, @@ -4331,7 +17872,9 @@ }, "yallist": { "version": "3.0.3", - "bundled": true + "bundled": true, + "dev": true, + "optional": true } } }, @@ -4867,8 +18410,7 @@ "integrity": "sha512-kaDA3DkCdCpvrKIo/1T/3yVn+qpFUHLjYtSHmTYewb+QfjfaQy6FGQ7LwBu7st0tG9UvYad/XAlqQmdIh6CICw==" }, "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "version": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, "optional": true @@ -5702,13 +19244,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz", "integrity": "sha1-lpgqLMR9BmquccVTursoMZEVos4=", - "dev": true + "dev": true, + "requires": {} }, "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==", - "dev": true + "dev": true, + "requires": {} }, "karma-webpack": { "version": "5.0.0", @@ -8120,27 +21664,6 @@ "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==" - }, - "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==", - "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==" - } - } } } }, @@ -8498,7 +22021,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "fast-deep-equal": { "version": "3.1.3", @@ -8617,7 +22141,8 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz", "integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==", - "dev": true + "dev": true, + "requires": {} }, "slash": { "version": "3.0.0", @@ -9000,6 +22525,15 @@ } } }, + "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", @@ -9310,15 +22844,6 @@ } } }, - "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" - } - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -9385,8 +22910,7 @@ "dev": true }, "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "version": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", "dev": true, "optional": true, @@ -9519,7 +23043,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "fast-deep-equal": { "version": "3.1.3", @@ -10023,7 +23548,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "fast-deep-equal": { "version": "3.1.3", @@ -10209,7 +23735,8 @@ "version": "8.8.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", - "dev": true + "dev": true, + "requires": {} }, "y18n": { "version": "5.0.8", From 00e87e5dc7491cdaf22c84e83bf09d0244e2b130 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 23 Aug 2022 14:52:17 +0200 Subject: [PATCH 113/989] ci: test against node@16 --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9cf582625c..b4dad1d04d 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -15,7 +15,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@v1 with: - node-version: 14 + node-version: 16 - name: Cache Node.js modules uses: actions/cache@v2 with: From 7c50471b319d659289cae32124dfdaad37291976 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Aug 2022 14:00:17 +0000 Subject: [PATCH 114/989] deps: bump tar from 4.4.8 to 4.4.19 Bumps [tar](https://github.com/npm/node-tar) from 4.4.8 to 4.4.19. - [Release notes](https://github.com/npm/node-tar/releases) - [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md) - [Commits](https://github.com/npm/node-tar/compare/v4.4.8...v4.4.19) --- updated-dependencies: - dependency-name: tar dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 173 +--------------------------------------------- 1 file changed, 2 insertions(+), 171 deletions(-) diff --git a/package-lock.json b/package-lock.json index a6ed130b79..6b0dfc3a70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5034,16 +5034,6 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "optional": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -6472,13 +6462,6 @@ "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.0.1.tgz", "integrity": "sha512-kaDA3DkCdCpvrKIo/1T/3yVn+qpFUHLjYtSHmTYewb+QfjfaQy6FGQ7LwBu7st0tG9UvYad/XAlqQmdIh6CICw==" }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "optional": true - }, "node_modules/internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", @@ -6559,7 +6542,7 @@ }, "node_modules/is-builtin-module": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "dependencies": { @@ -8019,34 +8002,6 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "optional": true - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "optional": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -12328,25 +12283,6 @@ "node": ">=6" } }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dev": true, - "optional": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=4.5" - } - }, "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -12389,34 +12325,6 @@ "node": ">= 6" } }, - "node_modules/tar/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, - "node_modules/tar/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "optional": true - }, "node_modules/terser": { "version": "5.14.2", "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", @@ -17314,16 +17222,6 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -18409,12 +18307,6 @@ "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.0.1.tgz", "integrity": "sha512-kaDA3DkCdCpvrKIo/1T/3yVn+qpFUHLjYtSHmTYewb+QfjfaQy6FGQ7LwBu7st0tG9UvYad/XAlqQmdIh6CICw==" }, - "ini": { - "version": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "optional": true - }, "internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", @@ -18477,7 +18369,7 @@ }, "is-builtin-module": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { @@ -19586,36 +19478,6 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.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 - } - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -22909,37 +22771,6 @@ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, - "tar": { - "version": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "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 - } - } - }, "tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", From a994bdc6451b1b769eb430504990341ac985495f Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Fri, 2 Sep 2022 16:28:00 +0200 Subject: [PATCH 115/989] fix: do not set colors when invalid Closes #1734 --- lib/features/modeling/cmd/SetColorHandler.js | 13 +++- test/spec/features/modeling/SetColor.bpmn | 72 +++++++++++++------- test/spec/features/modeling/SetColorSpec.js | 29 ++++++++ 3 files changed, 85 insertions(+), 29 deletions(-) diff --git a/lib/features/modeling/cmd/SetColorHandler.js b/lib/features/modeling/cmd/SetColorHandler.js index 5b670863c8..80a3047b57 100644 --- a/lib/features/modeling/cmd/SetColorHandler.js +++ b/lib/features/modeling/cmd/SetColorHandler.js @@ -6,7 +6,8 @@ import { } from 'min-dash'; import { - getDi + getDi, + isAny } from '../../../util/ModelUtil'; import { @@ -65,7 +66,8 @@ SetColorHandler.prototype.postExecute = function(context) { } forEach(elements, function(element) { - var assignedDi = isConnection(element) ? pick(di, [ 'border-color' ]) : di; + var assignedDi = isConnection(element) ? pick(di, [ 'border-color' ]) : di, + elementDi = getDi(element); // TODO @barmac: remove once we drop bpmn.io properties ensureLegacySupport(assignedDi); @@ -75,13 +77,18 @@ SetColorHandler.prototype.postExecute = function(context) { // set label colors as bpmndi:BPMNLabel#color self._commandStack.execute('element.updateModdleProperties', { element: element, - moddleElement: getDi(element).label, + moddleElement: elementDi.label, properties: { color: di['border-color'] } }); } else { + // ignore non-compliant di + if (!isAny(elementDi, [ 'bpmndi:BPMNEdge', 'bpmndi:BPMNShape' ])) { + return; + } + // set colors bpmndi:BPMNEdge or bpmndi:BPMNShape self._commandStack.execute('element.updateProperties', { element: element, 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/SetColorSpec.js b/test/spec/features/modeling/SetColorSpec.js index 2bcaebc2c3..65e81cb656 100644 --- a/test/spec/features/modeling/SetColorSpec.js +++ b/test/spec/features/modeling/SetColorSpec.js @@ -315,6 +315,35 @@ 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; + })); }); From 198dae694a3cd18950af08caa536574a6ea8c11c Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Mon, 5 Sep 2022 09:12:11 +0200 Subject: [PATCH 116/989] chore(CHANGELOG): update to v9.4.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74d5bf4110..fb84a996de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 9.4.1 + +* `FIX`: ignore elements which cannot be colored ([#1734](https://github.com/bpmn-io/bpmn-js/pull/1734)) + ## 9.4.0 * `FEAT`: allow clipboard to be serialized ([#1707](https://github.com/bpmn-io/bpmn-js/pull/1707)) From 20b0b32d5ba549e216e148bf332f38baa3504d0b Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Mon, 5 Sep 2022 09:16:08 +0200 Subject: [PATCH 117/989] 9.4.1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5b98708fc..85a98f49e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.4.0", + "version": "9.4.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 10cd657109..5d47d5a8a7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.4.0", + "version": "9.4.1", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 2cde1ef33d45c13da400f72cff98fcf6ef06b8a3 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Thu, 8 Sep 2022 14:23:06 +0200 Subject: [PATCH 118/989] feat(BaseViewer): migrate methods to ES2018 --- lib/BaseViewer.js | 334 +++++++++++++++++++++------------------------- 1 file changed, 150 insertions(+), 184 deletions(-) diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index c34d927e2d..9d7bb93056 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -107,13 +107,13 @@ inherits(BaseViewer, Diagram); * * Returns {Promise} */ -BaseViewer.prototype.importXML = wrapForCompatibility(function importXML(xml, bpmnDiagram) { +BaseViewer.prototype.importXML = wrapForCompatibility(async function importXML(xml, bpmnDiagram) { - var self = this; + const self = this; function ParseCompleteEvent(data) { - var event = self.get('eventBus').createEvent(data); + const event = self.get('eventBus').createEvent(data); // TODO(nikku): remove with future bpmn-js version Object.defineProperty(event, 'context', { @@ -136,54 +136,59 @@ BaseViewer.prototype.importXML = wrapForCompatibility(function importXML(xml, bp return event; } - return new Promise(function(resolve, reject) { + let aggregatedWarnings = []; + try { // hook in pre-parse listeners + // allow xml manipulation - xml = self._emit('import.parse.start', { xml: xml }) || xml; + xml = this._emit('import.parse.start', { xml: xml }) || xml; - self._moddle.fromXML(xml, 'bpmn:Definitions').then(function(result) { - var definitions = result.rootElement; - var references = result.references; - var parseWarnings = result.warnings; - var elementsById = result.elementsById; + let parseResult; + try { + parseResult = await this._moddle.fromXML(xml, 'bpmn:Definitions'); + } catch (error) { + this._emit('import.parse.complete', { + error + }); - // hook in post parse listeners + - // allow definitions manipulation - definitions = self._emit('import.parse.complete', ParseCompleteEvent({ - error: null, - definitions: definitions, - elementsById: elementsById, - references: references, - warnings: parseWarnings - })) || definitions; + throw error; + } - self.importDefinitions(definitions, bpmnDiagram).then(function(result) { - var allWarnings = [].concat(parseWarnings, result.warnings || []); + let definitions = parseResult.rootElement; + const references = parseResult.references; + const parseWarnings = parseResult.warnings; + const elementsById = parseResult.elementsById; - self._emit('import.done', { error: null, warnings: allWarnings }); + aggregatedWarnings = aggregatedWarnings.concat(parseWarnings); - return resolve({ warnings: allWarnings }); - }).catch(function(err) { - var allWarnings = [].concat(parseWarnings, err.warnings || []); + // hook in post parse listeners + + // allow definitions manipulation + definitions = this._emit('import.parse.complete', ParseCompleteEvent({ + error: null, + definitions: definitions, + elementsById: elementsById, + references: references, + warnings: aggregatedWarnings + })) || definitions; - self._emit('import.done', { error: err, warnings: allWarnings }); + const importResult = await this.importDefinitions(definitions, bpmnDiagram); - return reject(addWarningsToError(err, allWarnings)); - }); - }).catch(function(err) { + aggregatedWarnings = aggregatedWarnings.concat(importResult.warnings); - self._emit('import.parse.complete', { - error: err - }); + this._emit('import.done', { error: null, warnings: aggregatedWarnings }); - err = checkValidationError(err); + return { warnings: aggregatedWarnings }; + } catch (err) { + let error = err; + aggregatedWarnings = aggregatedWarnings.concat(error.warnings || []); + addWarningsToError(error, aggregatedWarnings); - self._emit('import.done', { error: err, warnings: err.warnings }); + error = checkValidationError(error); - return reject(err); - }); - }); + this._emit('import.done', { error, warnings: error.warnings }); + + throw error; + } }); /** @@ -222,24 +227,11 @@ BaseViewer.prototype.importXML = wrapForCompatibility(function importXML(xml, bp * * Returns {Promise} */ -BaseViewer.prototype.importDefinitions = wrapForCompatibility(function importDefinitions(definitions, bpmnDiagram) { - - var self = this; - - return new Promise(function(resolve, reject) { - - self._setDefinitions(definitions); - - self.open(bpmnDiagram).then(function(result) { +BaseViewer.prototype.importDefinitions = wrapForCompatibility(async function importDefinitions(definitions, bpmnDiagram) { + this._setDefinitions(definitions); + const result = await this.open(bpmnDiagram); - var warnings = result.warnings; - - return resolve({ warnings: warnings }); - }).catch(function(err) { - - return reject(err); - }); - }); + return { warnings: result.warnings }; }); /** @@ -277,50 +269,43 @@ BaseViewer.prototype.importDefinitions = wrapForCompatibility(function importDef * * Returns {Promise} */ -BaseViewer.prototype.open = wrapForCompatibility(function open(bpmnDiagramOrId) { - - var definitions = this._definitions; - var bpmnDiagram = bpmnDiagramOrId; - - var self = this; - - return new Promise(function(resolve, reject) { - if (!definitions) { - var err1 = new Error('no XML imported'); +BaseViewer.prototype.open = wrapForCompatibility(async function open(bpmnDiagramOrId) { - return reject(addWarningsToError(err1, [])); - } + const definitions = this._definitions; + let bpmnDiagram = bpmnDiagramOrId; - if (typeof bpmnDiagramOrId === 'string') { - bpmnDiagram = findBPMNDiagram(definitions, bpmnDiagramOrId); + if (!definitions) { + const error = new Error('no XML imported'); + addWarningsToError(error, []); - if (!bpmnDiagram) { - var err2 = new Error('BPMNDiagram <' + bpmnDiagramOrId + '> not found'); + throw error; + } - return reject(addWarningsToError(err2, [])); - } - } + if (typeof bpmnDiagramOrId === 'string') { + bpmnDiagram = findBPMNDiagram(definitions, bpmnDiagramOrId); - // clear existing rendered diagram - // catch synchronous exceptions during #clear() - try { - self.clear(); - } catch (error) { + if (!bpmnDiagram) { + const error = new Error('BPMNDiagram <' + bpmnDiagramOrId + '> not found'); + addWarningsToError(error, []); - return reject(addWarningsToError(error, [])); + throw error; } + } - // perform graphical import - importBpmnDiagram(self, definitions, bpmnDiagram).then(function(result) { + // clear existing rendered diagram + // catch synchronous exceptions during #clear() + try { + this.clear(); + } catch (error) { + addWarningsToError(error, []); - var warnings = result.warnings; + throw error; + } - return resolve({ warnings: warnings }); - }).catch(function(err) { + // perform graphical import + const { warnings } = await importBpmnDiagram(this, definitions, bpmnDiagram); - return reject(err); - }); - }); + return { warnings }; }); /** @@ -351,53 +336,42 @@ BaseViewer.prototype.open = wrapForCompatibility(function open(bpmnDiagramOrId) * * Returns {Promise} */ -BaseViewer.prototype.saveXML = wrapForCompatibility(function saveXML(options) { +BaseViewer.prototype.saveXML = wrapForCompatibility(async function saveXML(options) { options = options || {}; - var self = this; - - var definitions = this._definitions; - - return new Promise(function(resolve) { + let definitions = this._definitions, + error, xml; + try { if (!definitions) { - return resolve({ - error: new Error('no definitions loaded') - }); + throw new Error('no definitions loaded'); } // allow to fiddle around with definitions - definitions = self._emit('saveXML.start', { - definitions: definitions + definitions = this._emit('saveXML.start', { + definitions }) || definitions; - self._moddle.toXML(definitions, options).then(function(result) { + const result = await this._moddle.toXML(definitions, options); + xml = result.xml; - var xml = result.xml; - - xml = self._emit('saveXML.serialized', { - xml: xml - }) || xml; - - return resolve({ - xml: xml - }); - }); - }).catch(function(error) { - return { error: error }; - }).then(function(result) { + xml = this._emit('saveXML.serialized', { + xml + }) || xml; + } catch (err) { + error = err; + } - self._emit('saveXML.done', result); + const result = error ? { error } : { xml }; - var error = result.error; + this._emit('saveXML.done', result); - if (error) { - return Promise.reject(error); - } + if (error) { + throw error; + } - return result; - }); + return result; }); /** @@ -425,53 +399,45 @@ BaseViewer.prototype.saveXML = wrapForCompatibility(function saveXML(options) { * * Returns {Promise} */ -BaseViewer.prototype.saveSVG = wrapForCompatibility(function saveSVG(options) { - - options = options || {}; - - var self = this; +BaseViewer.prototype.saveSVG = wrapForCompatibility(async function saveSVG(options = {}) { + this._emit('saveSVG.start'); - return new Promise(function(resolve, reject) { + let svg, err; - self._emit('saveSVG.start'); - - var svg, err; - - try { - var canvas = self.get('canvas'); + try { + const canvas = this.get('canvas'); - var contentNode = canvas.getActiveLayer(), + const contentNode = canvas.getActiveLayer(), defsNode = domQuery('defs', canvas._svg); - var contents = innerSVG(contentNode), + const contents = innerSVG(contentNode), defs = defsNode ? '' + innerSVG(defsNode) + '' : ''; - var bbox = contentNode.getBBox(); - - svg = - '\n' + - '\n' + - '\n' + - '' + - defs + contents + - ''; - } catch (e) { - err = e; - } + const bbox = contentNode.getBBox(); + + svg = + '\n' + + '\n' + + '\n' + + '' + + defs + contents + + ''; + } catch (e) { + err = e; + } - self._emit('saveSVG.done', { - error: err, - svg: svg - }); + this._emit('saveSVG.done', { + error: err, + svg: svg + }); - if (!err) { - return resolve({ svg: svg }); - } + if (err) { + throw err; + } - return reject(err); - }); + return { svg }; }); /** @@ -479,8 +445,8 @@ BaseViewer.prototype.saveSVG = wrapForCompatibility(function saveSVG(options) { * * @example * - * var elementRegistry = viewer.get('elementRegistry'); - * var startEventShape = elementRegistry.get('StartEvent_1'); + * const elementRegistry = viewer.get('elementRegistry'); + * const startEventShape = elementRegistry.get('StartEvent_1'); * * @param {string} name * @@ -495,7 +461,7 @@ BaseViewer.prototype.saveSVG = wrapForCompatibility(function saveSVG(options) { * @example * * viewer.invoke(function(elementRegistry) { - * var startEventShape = elementRegistry.get('StartEvent_1'); + * const startEventShape = elementRegistry.get('StartEvent_1'); * }); * * @param {Function} fn to be invoked @@ -602,8 +568,8 @@ BaseViewer.prototype.getDefinitions = function() { BaseViewer.prototype.detach = function() { - var container = this._container, - parentNode = container.parentNode; + const container = this._container, + parentNode = container.parentNode; if (!parentNode) { return; @@ -616,18 +582,18 @@ BaseViewer.prototype.detach = function() { BaseViewer.prototype._init = function(container, moddle, options) { - var baseModules = options.modules || this.getModules(), - additionalModules = options.additionalModules || [], - staticModules = [ - { - bpmnjs: [ 'value', this ], - moddle: [ 'value', moddle ] - } - ]; + const baseModules = options.modules || this.getModules(), + additionalModules = options.additionalModules || [], + staticModules = [ + { + bpmnjs: [ 'value', this ], + moddle: [ 'value', moddle ] + } + ]; - var diagramModules = [].concat(staticModules, baseModules, additionalModules); + const diagramModules = [].concat(staticModules, baseModules, additionalModules); - var diagramOptions = assign(omit(options, [ 'additionalModules' ]), { + const diagramOptions = assign(omit(options, [ 'additionalModules' ]), { canvas: assign({}, options.canvas, { container: container }), modules: diagramModules }); @@ -654,7 +620,7 @@ BaseViewer.prototype._emit = function(type, event) { BaseViewer.prototype._createContainer = function(options) { - var container = domify('
'); + const container = domify('
'); assignStyle(container, { width: ensureUnit(options.width), @@ -666,7 +632,7 @@ BaseViewer.prototype._createContainer = function(options) { }; BaseViewer.prototype._createModdle = function(options) { - var moddleOptions = assign({}, this._moddleExtensions, options.moddleExtensions); + const moddleOptions = assign({}, this._moddleExtensions, options.moddleExtensions); return new BpmnModdle(moddleOptions); }; @@ -685,8 +651,8 @@ function checkValidationError(err) { // check if we can help the user by indicating wrong BPMN 2.0 xml // (in case he or the exporting tool did not get that right) - var pattern = /unparsable content <([^>]+)> detected([\s\S]*)$/; - var match = pattern.exec(err.message); + const pattern = /unparsable content <([^>]+)> detected([\s\S]*)$/; + const match = pattern.exec(err.message); if (match) { err.message = @@ -697,7 +663,7 @@ function checkValidationError(err) { return err; } -var DEFAULT_OPTIONS = { +const DEFAULT_OPTIONS = { width: '100%', height: '100%', position: 'relative' @@ -753,18 +719,18 @@ import { * @param {Element} container */ function addProjectLogo(container) { - var img = BPMNIO_IMG; + const img = BPMNIO_IMG; - var linkMarkup = + const linkMarkup = '' + - img + + 'target="_blank" ' + + 'class="bjs-powered-by" ' + + 'title="Powered by bpmn.io" ' + + '>' + + img + ''; - var linkElement = domify(linkMarkup); + const linkElement = domify(linkMarkup); assignStyle(domQuery('svg', linkElement), LOGO_STYLES); assignStyle(linkElement, LINK_STYLES, { From 73e26e8a62cd322169f177dc0380587cf24a5c12 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Wed, 14 Sep 2022 09:23:35 +0200 Subject: [PATCH 119/989] deps: update to `eslint-bpmn-io-plugin@15.0.1` --- .eslintrc | 8 +- package-lock.json | 368 +--------------------------------------------- package.json | 2 +- rollup.config.js | 2 + tasks/.eslintrc | 3 + 5 files changed, 15 insertions(+), 368 deletions(-) create mode 100644 tasks/.eslintrc diff --git a/.eslintrc b/.eslintrc index a7a7665001..0e5cad0fb6 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,15 +1,9 @@ { - "extends": "plugin:bpmn-io/es6", - "env": { - "browser": true - }, + "extends": "plugin:bpmn-io/browser", "rules": { "no-restricted-imports": [ "error", { "name": "inherits", "message": "Use inherits-browser instead" } ] - }, - "globals": { - "Promise": true } } diff --git a/package-lock.json b/package-lock.json index 82882ef704..e6c195dde5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,7 @@ "cross-env": "^7.0.3", "del": "^6.0.0", "eslint": "^8.22.0", - "eslint-plugin-bpmn-io": "^0.14.1", + "eslint-plugin-bpmn-io": "^0.15.1", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", "karma": "^6.4.0", @@ -184,42 +184,6 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/eslint-parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", - "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", - "dev": true, - "dependencies": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/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/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { "version": "7.18.12", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", @@ -441,21 +405,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/template": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", @@ -3561,168 +3510,16 @@ "dev": true }, "node_modules/eslint-plugin-bpmn-io": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.14.1.tgz", - "integrity": "sha512-W7JTh/wnwzeUH+FMuLSsGeonVaMwxX6s+hopaeRLAcfYG06HwI/NOcPzPQxBTDYJ19xFBiqj24zKcppf3mvFxg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.15.1.tgz", + "integrity": "sha512-J0eN4rzyNTER6dpW8EbiDZ6uhvOZXmvvmWABB4t2fQtUHyHZ0zd3gLMtYWZI0yMurVxpr7KWOzo7Yokz5QDILg==", "dev": true, "dependencies": { - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-syntax-jsx": "^7.18.6", "eslint-plugin-mocha": "^10.1.0", "eslint-plugin-react": "^7.30.1" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/eslint-plugin-bpmn-io/node_modules/@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/eslint-plugin-bpmn-io/node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/eslint-plugin-bpmn-io/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-plugin-bpmn-io/node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-plugin-bpmn-io/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-plugin-bpmn-io/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "eslint": "^8.0.0" } }, "node_modules/eslint-plugin-import": { @@ -13507,31 +13304,6 @@ } } }, - "@babel/eslint-parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", - "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", - "dev": true, - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.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 - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, "@babel/generator": { "version": "7.18.12", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", @@ -13699,15 +13471,6 @@ "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", "dev": true }, - "@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, "@babel/template": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", @@ -16432,128 +16195,13 @@ } }, "eslint-plugin-bpmn-io": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.14.1.tgz", - "integrity": "sha512-W7JTh/wnwzeUH+FMuLSsGeonVaMwxX6s+hopaeRLAcfYG06HwI/NOcPzPQxBTDYJ19xFBiqj24zKcppf3mvFxg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.15.1.tgz", + "integrity": "sha512-J0eN4rzyNTER6dpW8EbiDZ6uhvOZXmvvmWABB4t2fQtUHyHZ0zd3gLMtYWZI0yMurVxpr7KWOzo7Yokz5QDILg==", "dev": true, "requires": { - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-syntax-jsx": "^7.18.6", "eslint-plugin-mocha": "^10.1.0", "eslint-plugin-react": "^7.30.1" - }, - "dependencies": { - "@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - }, - "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "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" - } - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "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 - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "eslint-plugin-import": { diff --git a/package.json b/package.json index 5d47d5a8a7..17a9a27b84 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "cross-env": "^7.0.3", "del": "^6.0.0", "eslint": "^8.22.0", - "eslint-plugin-bpmn-io": "^0.14.1", + "eslint-plugin-bpmn-io": "^0.15.1", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", "karma": "^6.4.0", diff --git a/rollup.config.js b/rollup.config.js index 70c14b8ecc..cdc5f7ed85 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,3 +1,5 @@ +/* eslint-env node */ + import { terser } from 'rollup-plugin-terser'; import nodeResolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; diff --git a/tasks/.eslintrc b/tasks/.eslintrc new file mode 100644 index 0000000000..13c9a82314 --- /dev/null +++ b/tasks/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "plugin:bpmn-io/node" +} From dc6c3744214cfc7a6010fcdbfb7e09e1209fa7ee Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Mon, 12 Sep 2022 11:55:12 +0200 Subject: [PATCH 120/989] chore(CHANGELOG): update to v10.0.0 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb84a996de..f2f565f6f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 10.0.0 + +* `FEAT`: use ES2018 syntax ([#1737](https://github.com/bpmn-io/bpmn-js/pull/1737)) + +### Breaking Changes + +* Migrated to ES2018 syntax. [Read the blog post with details and a migration guide](https://bpmn.io/blog/posts/2022-core-libraries-migrated-to-es2018.html). + ## 9.4.1 * `FIX`: ignore elements which cannot be colored ([#1734](https://github.com/bpmn-io/bpmn-js/pull/1734)) From 0a81b999f558c8c5c61f74237866cac8377373ca Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Mon, 19 Sep 2022 09:38:06 +0200 Subject: [PATCH 121/989] chore(CHANGELOG): update blog post link --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2f565f6f2..cc79384f5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ ___Note:__ Yet to be released changes appear here._ ### Breaking Changes -* Migrated to ES2018 syntax. [Read the blog post with details and a migration guide](https://bpmn.io/blog/posts/2022-core-libraries-migrated-to-es2018.html). +* Migrated to ES2018 syntax. [Read the blog post with details and a migration guide](https://bpmn.io/blog/posts/2022-migration-to-es2018.html). ## 9.4.1 From 86e705fb22876d9704c40e9d4efc0e56a012c69b Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Tue, 20 Sep 2022 11:44:41 +0200 Subject: [PATCH 122/989] 10.0.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e6c195dde5..9fa67644de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "9.4.1", + "version": "10.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "9.4.1", + "version": "10.0.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^7.1.3", diff --git a/package.json b/package.json index 17a9a27b84..5f049de46d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "9.4.1", + "version": "10.0.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 6145414e524365e4d1d23e11f285c64a05bdb4c5 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Tue, 20 Sep 2022 15:55:54 +0200 Subject: [PATCH 123/989] ci: use node@16 for post-release --- .github/workflows/POST_RELEASE.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/POST_RELEASE.yml b/.github/workflows/POST_RELEASE.yml index 3a3ca52c92..419d249a0d 100644 --- a/.github/workflows/POST_RELEASE.yml +++ b/.github/workflows/POST_RELEASE.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: os: [ ubuntu-latest ] - node-version: [ 14 ] + node-version: [ 16 ] runs-on: ${{ matrix.os }} From c53e53ad29620416bbfb791326d5b1e09bd97c41 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 28 Sep 2022 22:41:41 +0200 Subject: [PATCH 124/989] chore(CHANGELOG): add diagram-js bump --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc79384f5f..2e702267d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ___Note:__ Yet to be released changes appear here._ ## 10.0.0 * `FEAT`: use ES2018 syntax ([#1737](https://github.com/bpmn-io/bpmn-js/pull/1737)) +* `DEPS`: update to `diagram-js@9.0.0` ### Breaking Changes From 31517397835ce8ad38820e39ed9ceb69202c6f88 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 21:49:22 +0000 Subject: [PATCH 125/989] chore(deps): add renovate.json --- renovate.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000000..39a2b6e9a5 --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:base" + ] +} From 47cbd30f7d5415241fddde702ad742e52dafc392 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 29 Sep 2022 18:16:06 +0200 Subject: [PATCH 126/989] chore(renovate): inherit config --- renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 39a2b6e9a5..24c1ca6a9d 100644 --- a/renovate.json +++ b/renovate.json @@ -1,6 +1,6 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ - "config:base" + "github>bpmn-io/renovate-config:recommended" ] } From 1a5333e4754ba75e19581e3ed5ddf215fc886166 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 29 Sep 2022 18:24:24 +0200 Subject: [PATCH 127/989] ci: drop dependabot --- .github/dependabot.yml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 775d941360..0000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,20 +0,0 @@ -# configure dependabot automatic dependency upgrades (PRs) -# -# @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates - -version: 2 -updates: - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "monthly" - day: "monday" - time: "09:00" - timezone: "Europe/Berlin" - reviewers: # Automatically assign reviewer - - "bpmn-io/modeling-dev" - commit-message: - prefix: "deps:" - versioning-strategy: "increase-if-necessary" - # Disable version updates unless they are for security reasons. - open-pull-requests-limit: 0 From 65de2addd6b7f41ca584855b67864bd25d8bedda Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Sep 2022 16:24:55 +0000 Subject: [PATCH 128/989] chore: update dependency nanoid to 3.1.31 [security] --- package-lock.json | 394 +++++++++++++++++----------------------------- package.json | 2 +- 2 files changed, 143 insertions(+), 253 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9fa67644de..2566b5a365 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,7 +48,7 @@ "karma-sinon-chai": "^2.0.2", "karma-webpack": "^5.0.0", "mkdirp": "^0.5.1", - "mocha": "^8.4.0", + "mocha": "^9.0.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", "promise-polyfill": "^8.2.0", @@ -5784,9 +5784,9 @@ } }, "node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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", @@ -5798,6 +5798,9 @@ }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-base": { @@ -6468,15 +6471,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", @@ -6660,6 +6654,18 @@ "node": ">= 0.4" } }, + "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-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -7450,15 +7456,19 @@ "dev": true }, "node_modules/log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "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.0.0" + "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/ansi-styles": { @@ -7477,9 +7487,9 @@ } }, "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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", @@ -7849,33 +7859,32 @@ "dev": true }, "node_modules/mocha": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", - "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "dependencies": { "@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", + "chokidar": "3.5.3", + "debug": "4.3.3", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.1.6", + "glob": "7.2.0", "growl": "1.10.5", "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", + "workerpool": "6.2.0", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" @@ -7885,7 +7894,7 @@ "mocha": "bin/mocha" }, "engines": { - "node": ">= 10.12.0" + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", @@ -7911,12 +7920,6 @@ "node": ">= 8" } }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/mocha/node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -7939,30 +7942,36 @@ } }, "node_modules/mocha/node_modules/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==", + "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.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.3.1" + "fsevents": "~2.3.2" } }, "node_modules/mocha/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -8020,26 +8029,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "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/mocha/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -8076,16 +8065,16 @@ "node_modules/mocha/node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/mocha/node_modules/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==", + "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" @@ -8103,16 +8092,16 @@ "node": ">=0.12.0" } }, - "node_modules/mocha/node_modules/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==", + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "brace-expansion": "^1.1.7" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=10" } }, "node_modules/mocha/node_modules/ms": { @@ -8131,9 +8120,9 @@ } }, "node_modules/mocha/node_modules/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==", + "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" @@ -8143,9 +8132,9 @@ } }, "node_modules/mocha/node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "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" @@ -8243,9 +8232,9 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -13005,49 +12994,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -13058,9 +13004,9 @@ } }, "node_modules/workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", "dev": true }, "node_modules/wrap-ansi": { @@ -17595,9 +17541,9 @@ "dev": true }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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", @@ -18106,12 +18052,6 @@ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, - "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 - }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", @@ -18243,6 +18183,12 @@ "has-symbols": "^1.0.0" } }, + "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-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -18852,12 +18798,13 @@ "dev": true }, "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "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": { - "chalk": "^4.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "dependencies": { "ansi-styles": { @@ -18870,9 +18817,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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", @@ -19171,33 +19118,32 @@ "dev": true }, "mocha": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", - "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "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", + "chokidar": "3.5.3", + "debug": "4.3.3", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.1.6", + "glob": "7.2.0", "growl": "1.10.5", "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", + "workerpool": "6.2.0", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" @@ -19213,12 +19159,6 @@ "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", @@ -19235,25 +19175,25 @@ } }, "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==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "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.5.0" + "readdirp": "~3.6.0" } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "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" @@ -19289,20 +19229,6 @@ "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", @@ -19330,13 +19256,13 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "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==", + "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" @@ -19348,13 +19274,13 @@ "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==", + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", "dev": true, "requires": { - "argparse": "^2.0.1" + "brace-expansion": "^1.1.7" } }, "ms": { @@ -19370,18 +19296,18 @@ "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==", + "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" } }, "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "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" @@ -19466,9 +19392,9 @@ "optional": true }, "nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, "nanomatch": { @@ -23119,42 +23045,6 @@ } } }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "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" - } - } - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -23162,9 +23052,9 @@ "dev": true }, "workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", "dev": true }, "wrap-ansi": { diff --git a/package.json b/package.json index 5f049de46d..30dff6796d 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "karma-sinon-chai": "^2.0.2", "karma-webpack": "^5.0.0", "mkdirp": "^0.5.1", - "mocha": "^8.4.0", + "mocha": "^9.0.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", "promise-polyfill": "^8.2.0", From 037fafe9435a158bccd8abba1f48a7563057c399 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Sep 2022 21:23:28 +0000 Subject: [PATCH 129/989] deps: update dependency min-dom to v4 --- package-lock.json | 74 ++++++++++++++++++++++++++++++++++++++--------- package.json | 2 +- 2 files changed, 62 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2566b5a365..9c65d70e5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "ids": "^1.0.0", "inherits-browser": "0.0.1", "min-dash": "^3.5.2", - "min-dom": "^3.2.1", + "min-dom": "^4.0.0", "object-refs": "^0.3.0", "tiny-svg": "^2.2.4" }, @@ -3102,6 +3102,30 @@ "diagram-js": "^0.x || ^1.x || ^2.x || ^3.x || ^4.x || ^5.x || ^6.x || ^7.x || ^8.x" } }, + "node_modules/diagram-js-direct-editing/node_modules/min-dom": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", + "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", + "dependencies": { + "component-event": "^0.1.4", + "domify": "^1.3.1", + "indexof": "0.0.1", + "matches-selector": "^1.2.0", + "min-dash": "^3.8.1" + } + }, + "node_modules/diagram-js/node_modules/min-dom": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", + "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", + "dependencies": { + "component-event": "^0.1.4", + "domify": "^1.3.1", + "indexof": "0.0.1", + "matches-selector": "^1.2.0", + "min-dash": "^3.8.1" + } + }, "node_modules/didi": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/didi/-/didi-8.0.1.tgz", @@ -7780,14 +7804,12 @@ "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" }, "node_modules/min-dom": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", - "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.0.2.tgz", + "integrity": "sha512-zOlfZJ/mfgHKnmfAdZdNEaELq52z6Q8kWNZzupPv4aKLdpc67Uq6tCDAo/UIm1MKZrJIok7XMjRrYctG/jtqGw==", "dependencies": { "component-event": "^0.1.4", - "domify": "^1.3.1", - "indexof": "0.0.1", - "matches-selector": "^1.2.0", + "domify": "^1.4.1", "min-dash": "^3.8.1" } }, @@ -15502,6 +15524,20 @@ "object-refs": "^0.3.0", "path-intersection": "^2.2.1", "tiny-svg": "^2.2.2" + }, + "dependencies": { + "min-dom": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", + "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", + "requires": { + "component-event": "^0.1.4", + "domify": "^1.3.1", + "indexof": "0.0.1", + "matches-selector": "^1.2.0", + "min-dash": "^3.8.1" + } + } } }, "diagram-js-direct-editing": { @@ -15511,6 +15547,20 @@ "requires": { "min-dash": "^3.5.2", "min-dom": "^3.1.3" + }, + "dependencies": { + "min-dom": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", + "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", + "requires": { + "component-event": "^0.1.4", + "domify": "^1.3.1", + "indexof": "0.0.1", + "matches-selector": "^1.2.0", + "min-dash": "^3.8.1" + } + } } }, "didi": { @@ -19047,14 +19097,12 @@ "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" }, "min-dom": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", - "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.0.2.tgz", + "integrity": "sha512-zOlfZJ/mfgHKnmfAdZdNEaELq52z6Q8kWNZzupPv4aKLdpc67Uq6tCDAo/UIm1MKZrJIok7XMjRrYctG/jtqGw==", "requires": { "component-event": "^0.1.4", - "domify": "^1.3.1", - "indexof": "0.0.1", - "matches-selector": "^1.2.0", + "domify": "^1.4.1", "min-dash": "^3.8.1" } }, diff --git a/package.json b/package.json index 30dff6796d..f8794c4cdf 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "ids": "^1.0.0", "inherits-browser": "0.0.1", "min-dash": "^3.5.2", - "min-dom": "^3.2.1", + "min-dom": "^4.0.0", "object-refs": "^0.3.0", "tiny-svg": "^2.2.4" } From 6c1276f04639ea93e30df5a2343f9e0d02396b37 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Sep 2022 21:53:16 +0000 Subject: [PATCH 130/989] deps: update dependency min-dash to v4 --- package-lock.json | 96 +++++++++++++++++++++++++++++++++++++++++++---- package.json | 2 +- 2 files changed, 90 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c65d70e5e..00527dd509 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "diagram-js-direct-editing": "^1.7.0", "ids": "^1.0.0", "inherits-browser": "0.0.1", - "min-dash": "^3.5.2", + "min-dash": "^4.0.0", "min-dom": "^4.0.0", "object-refs": "^0.3.0", "tiny-svg": "^2.2.4" @@ -2232,6 +2232,11 @@ "moddle-xml": "^9.0.6" } }, + "node_modules/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==" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2419,6 +2424,12 @@ "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 + }, "node_modules/caniuse-lite": { "version": "1.0.30001378", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001378.tgz", @@ -3102,6 +3113,11 @@ "diagram-js": "^0.x || ^1.x || ^2.x || ^3.x || ^4.x || ^5.x || ^6.x || ^7.x || ^8.x" } }, + "node_modules/diagram-js-direct-editing/node_modules/min-dash": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", + "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" + }, "node_modules/diagram-js-direct-editing/node_modules/min-dom": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", @@ -3114,6 +3130,11 @@ "min-dash": "^3.8.1" } }, + "node_modules/diagram-js/node_modules/min-dash": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", + "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" + }, "node_modules/diagram-js/node_modules/min-dom": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", @@ -7799,9 +7820,9 @@ } }, "node_modules/min-dash": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", - "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-4.0.0.tgz", + "integrity": "sha512-piIvVJ/nxuA4+LpnYIzF6oCtRvdtDvQJteSC+H768H2UvPKFKIt5oiJnUVtr0ZdchneXTcvUZ91vIrvWVIN0AA==" }, "node_modules/min-dom": { "version": "4.0.2", @@ -7813,6 +7834,11 @@ "min-dash": "^3.8.1" } }, + "node_modules/min-dom/node_modules/min-dash": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", + "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" + }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -8231,6 +8257,16 @@ "saxen": "^8.1.2" } }, + "node_modules/moddle-xml/node_modules/min-dash": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", + "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" + }, + "node_modules/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==" + }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -14863,6 +14899,13 @@ "min-dash": "^3.5.2", "moddle": "^5.0.2", "moddle-xml": "^9.0.6" + }, + "dependencies": { + "min-dash": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", + "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" + } } }, "brace-expansion": { @@ -14992,6 +15035,14 @@ "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": { @@ -15526,6 +15577,11 @@ "tiny-svg": "^2.2.2" }, "dependencies": { + "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.2.1", "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", @@ -15549,6 +15605,11 @@ "min-dom": "^3.1.3" }, "dependencies": { + "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.2.1", "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", @@ -19092,9 +19153,9 @@ "dev": true }, "min-dash": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", - "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-4.0.0.tgz", + "integrity": "sha512-piIvVJ/nxuA4+LpnYIzF6oCtRvdtDvQJteSC+H768H2UvPKFKIt5oiJnUVtr0ZdchneXTcvUZ91vIrvWVIN0AA==" }, "min-dom": { "version": "4.0.2", @@ -19104,6 +19165,13 @@ "component-event": "^0.1.4", "domify": "^1.4.1", "min-dash": "^3.8.1" + }, + "dependencies": { + "min-dash": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", + "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" + } } }, "minimatch": { @@ -19408,6 +19476,13 @@ "integrity": "sha512-EjnQkSaZClHMsM3H/guBy9h7AmHUICH0Pf8H1VnnYGUXy2hkZQU4gqEAyHywJzMRAhYX87pXjH2NtyigF7evkA==", "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==" + } } }, "moddle-xml": { @@ -19418,6 +19493,13 @@ "min-dash": "^3.5.2", "moddle": "^5.0.2", "saxen": "^8.1.2" + }, + "dependencies": { + "min-dash": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", + "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" + } } }, "moment": { diff --git a/package.json b/package.json index f8794c4cdf..6b6ec33b52 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "diagram-js-direct-editing": "^1.7.0", "ids": "^1.0.0", "inherits-browser": "0.0.1", - "min-dash": "^3.5.2", + "min-dash": "^4.0.0", "min-dom": "^4.0.0", "object-refs": "^0.3.0", "tiny-svg": "^2.2.4" From 93b80208331d39ae7f73b7ed0b85ad23b257b013 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Sep 2022 22:06:08 +0000 Subject: [PATCH 131/989] chore: update dependency eslint-plugin-bpmn-io to ^0.16.0 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 00527dd509..bd99e90ef2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,7 @@ "cross-env": "^7.0.3", "del": "^6.0.0", "eslint": "^8.22.0", - "eslint-plugin-bpmn-io": "^0.15.1", + "eslint-plugin-bpmn-io": "^0.16.0", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", "karma": "^6.4.0", @@ -3555,9 +3555,9 @@ "dev": true }, "node_modules/eslint-plugin-bpmn-io": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.15.1.tgz", - "integrity": "sha512-J0eN4rzyNTER6dpW8EbiDZ6uhvOZXmvvmWABB4t2fQtUHyHZ0zd3gLMtYWZI0yMurVxpr7KWOzo7Yokz5QDILg==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.16.0.tgz", + "integrity": "sha512-33lxw01ombcLWX5gEGpnqKh7DXbTdBh6CWlmkfCwTGFqklndvrP7qemZczO8Sg0mMlQiF7Eu17Zlv7etwX2BIg==", "dev": true, "dependencies": { "eslint-plugin-mocha": "^10.1.0", @@ -16252,9 +16252,9 @@ } }, "eslint-plugin-bpmn-io": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.15.1.tgz", - "integrity": "sha512-J0eN4rzyNTER6dpW8EbiDZ6uhvOZXmvvmWABB4t2fQtUHyHZ0zd3gLMtYWZI0yMurVxpr7KWOzo7Yokz5QDILg==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.16.0.tgz", + "integrity": "sha512-33lxw01ombcLWX5gEGpnqKh7DXbTdBh6CWlmkfCwTGFqklndvrP7qemZczO8Sg0mMlQiF7Eu17Zlv7etwX2BIg==", "dev": true, "requires": { "eslint-plugin-mocha": "^10.1.0", diff --git a/package.json b/package.json index 6b6ec33b52..d22ae8c249 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "cross-env": "^7.0.3", "del": "^6.0.0", "eslint": "^8.22.0", - "eslint-plugin-bpmn-io": "^0.15.1", + "eslint-plugin-bpmn-io": "^0.16.0", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", "karma": "^6.4.0", From ece1d5b0587b5aa54294b5d7c8ecab9e4def2a48 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 30 Sep 2022 09:40:47 +0200 Subject: [PATCH 132/989] deps: update to diagram-js@9 + bump utility dependencies --- package-lock.json | 192 ++++++++++++---------------------------------- package.json | 10 +-- 2 files changed, 55 insertions(+), 147 deletions(-) diff --git a/package-lock.json b/package-lock.json index bd99e90ef2..c872c48123 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,14 +11,14 @@ "dependencies": { "bpmn-moddle": "^7.1.3", "css.escape": "^1.5.1", - "diagram-js": "^8.9.0", - "diagram-js-direct-editing": "^1.7.0", + "diagram-js": "^9.1.0", + "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", - "inherits-browser": "0.0.1", + "inherits-browser": "^0.1.0", "min-dash": "^4.0.0", - "min-dom": "^4.0.0", + "min-dom": "^4.0.2", "object-refs": "^0.3.0", - "tiny-svg": "^2.2.4" + "tiny-svg": "^3.0.0" }, "devDependencies": { "@babel/core": "^7.18.10", @@ -3086,71 +3086,37 @@ "dev": true }, "node_modules/diagram-js": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.9.0.tgz", - "integrity": "sha512-577bUEbkwZ7id4SCXcD2qrlKoRPXry2SDSPt5T6tEOjwKrTllKr5d1HZoJzGws4VMQq5fmY51Gce1iFT9S4Dlw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-9.1.0.tgz", + "integrity": "sha512-Kh74c7iKczxrDmnnRn3Fay8+1AnOIEm22A7yxPP/1jyfGiGM1Thxp08niKru60HSpFyOguhYu4jgqOSM9fJzdw==", "dependencies": { "css.escape": "^1.5.1", - "didi": "^8.0.1", + "didi": "^9.0.0", "hammerjs": "^2.0.1", - "inherits-browser": "0.0.1", - "min-dash": "^3.5.2", - "min-dom": "^3.2.0", + "inherits-browser": "^0.1.0", + "min-dash": "^4.0.0", + "min-dom": "^4.0.2", "object-refs": "^0.3.0", "path-intersection": "^2.2.1", - "tiny-svg": "^2.2.2" + "tiny-svg": "^3.0.0" } }, "node_modules/diagram-js-direct-editing": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-1.7.0.tgz", - "integrity": "sha512-ZfTLF4hdWr7NSoruwxGvVmu7aVaUjWRXjwgK5dx58LbXAsNjBS3Ap7zjVuGxjWUpCZ/MMwyZ00lpTHPH2P7BFQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-2.0.0.tgz", + "integrity": "sha512-/12OWL0B0RMCfaT1w3723c729MD42r5fay4wtm2DvxNFNBMdPaEvOHCTA/khLKjFzOzMVKxSzbAp7IEwBGonVw==", "dependencies": { - "min-dash": "^3.5.2", - "min-dom": "^3.1.3" + "min-dash": "^4.0.0", + "min-dom": "^4.0.2" }, "peerDependencies": { - "diagram-js": "^0.x || ^1.x || ^2.x || ^3.x || ^4.x || ^5.x || ^6.x || ^7.x || ^8.x" - } - }, - "node_modules/diagram-js-direct-editing/node_modules/min-dash": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", - "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" - }, - "node_modules/diagram-js-direct-editing/node_modules/min-dom": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", - "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", - "dependencies": { - "component-event": "^0.1.4", - "domify": "^1.3.1", - "indexof": "0.0.1", - "matches-selector": "^1.2.0", - "min-dash": "^3.8.1" - } - }, - "node_modules/diagram-js/node_modules/min-dash": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", - "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" - }, - "node_modules/diagram-js/node_modules/min-dom": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", - "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", - "dependencies": { - "component-event": "^0.1.4", - "domify": "^1.3.1", - "indexof": "0.0.1", - "matches-selector": "^1.2.0", - "min-dash": "^3.8.1" + "diagram-js": "*" } }, "node_modules/didi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/didi/-/didi-8.0.1.tgz", - "integrity": "sha512-7oXiXbp8DHE3FfQsVBkc2pwePo3Jy2uyGS9trAeBmfxiZAP4WV23LWokRpMmyl3hlu8OEAsyMxx19i5P6TVaJQ==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.0.tgz", + "integrity": "sha512-bOZ7WAah3t8TxKV81pbIivHjWyABot49YXG1M3QztnUlZDHz3MRNJ1nZO87JbqrkqNI/2GR4ncHfXdGIP9LX+w==" }, "node_modules/diff": { "version": "5.0.0", @@ -6281,11 +6247,6 @@ "node": ">=8" } }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==" - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -6303,9 +6264,9 @@ "dev": true }, "node_modules/inherits-browser": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.0.1.tgz", - "integrity": "sha512-kaDA3DkCdCpvrKIo/1T/3yVn+qpFUHLjYtSHmTYewb+QfjfaQy6FGQ7LwBu7st0tG9UvYad/XAlqQmdIh6CICw==" + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.1.0.tgz", + "integrity": "sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw==" }, "node_modules/internal-slot": { "version": "1.0.3", @@ -7709,11 +7670,6 @@ "node": ">=0.10.0" } }, - "node_modules/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==" - }, "node_modules/math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", @@ -12407,9 +12363,9 @@ "dev": true }, "node_modules/tiny-svg": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.4.tgz", - "integrity": "sha512-NOi39lBknf4UdDEahNkbEAJnzhu1ZcN2j75IS2vLRmIhsfxdZpTChfLKBcN1ShplVmPIXJAIafk6YY5/Aa80lQ==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.0.0.tgz", + "integrity": "sha512-+u6VomQO7MbI7CQe5q1IwNePpbVKG/HVdUQBmaEpSCdP/QmeyjhrS6WKFsNetXlvf9LWu/f5woRqjMdxBMe/0w==" }, "node_modules/tmp": { "version": "0.2.1", @@ -15562,72 +15518,34 @@ "dev": true }, "diagram-js": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.9.0.tgz", - "integrity": "sha512-577bUEbkwZ7id4SCXcD2qrlKoRPXry2SDSPt5T6tEOjwKrTllKr5d1HZoJzGws4VMQq5fmY51Gce1iFT9S4Dlw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-9.1.0.tgz", + "integrity": "sha512-Kh74c7iKczxrDmnnRn3Fay8+1AnOIEm22A7yxPP/1jyfGiGM1Thxp08niKru60HSpFyOguhYu4jgqOSM9fJzdw==", "requires": { "css.escape": "^1.5.1", - "didi": "^8.0.1", + "didi": "^9.0.0", "hammerjs": "^2.0.1", - "inherits-browser": "0.0.1", - "min-dash": "^3.5.2", - "min-dom": "^3.2.0", + "inherits-browser": "^0.1.0", + "min-dash": "^4.0.0", + "min-dom": "^4.0.2", "object-refs": "^0.3.0", "path-intersection": "^2.2.1", - "tiny-svg": "^2.2.2" - }, - "dependencies": { - "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.2.1", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", - "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", - "requires": { - "component-event": "^0.1.4", - "domify": "^1.3.1", - "indexof": "0.0.1", - "matches-selector": "^1.2.0", - "min-dash": "^3.8.1" - } - } + "tiny-svg": "^3.0.0" } }, "diagram-js-direct-editing": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-1.7.0.tgz", - "integrity": "sha512-ZfTLF4hdWr7NSoruwxGvVmu7aVaUjWRXjwgK5dx58LbXAsNjBS3Ap7zjVuGxjWUpCZ/MMwyZ00lpTHPH2P7BFQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-2.0.0.tgz", + "integrity": "sha512-/12OWL0B0RMCfaT1w3723c729MD42r5fay4wtm2DvxNFNBMdPaEvOHCTA/khLKjFzOzMVKxSzbAp7IEwBGonVw==", "requires": { - "min-dash": "^3.5.2", - "min-dom": "^3.1.3" - }, - "dependencies": { - "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.2.1", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", - "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", - "requires": { - "component-event": "^0.1.4", - "domify": "^1.3.1", - "indexof": "0.0.1", - "matches-selector": "^1.2.0", - "min-dash": "^3.8.1" - } - } + "min-dash": "^4.0.0", + "min-dom": "^4.0.2" } }, "didi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/didi/-/didi-8.0.1.tgz", - "integrity": "sha512-7oXiXbp8DHE3FfQsVBkc2pwePo3Jy2uyGS9trAeBmfxiZAP4WV23LWokRpMmyl3hlu8OEAsyMxx19i5P6TVaJQ==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.0.tgz", + "integrity": "sha512-bOZ7WAah3t8TxKV81pbIivHjWyABot49YXG1M3QztnUlZDHz3MRNJ1nZO87JbqrkqNI/2GR4ncHfXdGIP9LX+w==" }, "diff": { "version": "5.0.0", @@ -17986,11 +17904,6 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==" - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -18008,9 +17921,9 @@ "dev": true }, "inherits-browser": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.0.1.tgz", - "integrity": "sha512-kaDA3DkCdCpvrKIo/1T/3yVn+qpFUHLjYtSHmTYewb+QfjfaQy6FGQ7LwBu7st0tG9UvYad/XAlqQmdIh6CICw==" + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.1.0.tgz", + "integrity": "sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw==" }, "internal-slot": { "version": "1.0.3", @@ -19069,11 +18982,6 @@ "object-visit": "^1.0.0" } }, - "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", @@ -22686,9 +22594,9 @@ "dev": true }, "tiny-svg": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.4.tgz", - "integrity": "sha512-NOi39lBknf4UdDEahNkbEAJnzhu1ZcN2j75IS2vLRmIhsfxdZpTChfLKBcN1ShplVmPIXJAIafk6YY5/Aa80lQ==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.0.0.tgz", + "integrity": "sha512-+u6VomQO7MbI7CQe5q1IwNePpbVKG/HVdUQBmaEpSCdP/QmeyjhrS6WKFsNetXlvf9LWu/f5woRqjMdxBMe/0w==" }, "tmp": { "version": "0.2.1", diff --git a/package.json b/package.json index d22ae8c249..a8e7222dfd 100644 --- a/package.json +++ b/package.json @@ -97,13 +97,13 @@ "dependencies": { "bpmn-moddle": "^7.1.3", "css.escape": "^1.5.1", - "diagram-js": "^8.9.0", - "diagram-js-direct-editing": "^1.7.0", + "diagram-js": "^9.1.0", + "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", - "inherits-browser": "0.0.1", + "inherits-browser": "^0.1.0", "min-dash": "^4.0.0", - "min-dom": "^4.0.0", + "min-dom": "^4.0.2", "object-refs": "^0.3.0", - "tiny-svg": "^2.2.4" + "tiny-svg": "^3.0.0" } } From 11e358c69101e6d6a17e2425d800ac7d4e49149f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 30 Sep 2022 09:41:38 +0200 Subject: [PATCH 133/989] chore(CHANGELOG): update to v10.1.0 --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e702267d2..b83b23b14f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,13 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 10.1.0 + +* `DEPS`: update to `diagram-js@9.1.0` + ## 10.0.0 * `FEAT`: use ES2018 syntax ([#1737](https://github.com/bpmn-io/bpmn-js/pull/1737)) -* `DEPS`: update to `diagram-js@9.0.0` ### Breaking Changes From c1c75a1fc0c8c667ddadfea5890bc2595c359825 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 30 Sep 2022 09:46:05 +0200 Subject: [PATCH 134/989] 10.1.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c872c48123..ef1c674d6c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "10.0.0", + "version": "10.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "10.0.0", + "version": "10.1.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^7.1.3", diff --git a/package.json b/package.json index a8e7222dfd..b1bf1c4569 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "10.0.0", + "version": "10.1.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 0091a4f2cc87f84935328ca502513f047f152d83 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 30 Sep 2022 09:59:52 +0200 Subject: [PATCH 135/989] chore: drop promise-polyfill We're ES2018 now. --- package-lock.json | 13 ------------- package.json | 1 - test/config/karma.distro.js | 1 - test/config/karma.unit.js | 1 - 4 files changed, 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index ef1c674d6c..ab0e87d9f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,7 +51,6 @@ "mocha": "^9.0.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", - "promise-polyfill": "^8.2.0", "puppeteer": "^16.1.1", "rollup": "^2.78.0", "rollup-plugin-json": "^4.0.0", @@ -9513,12 +9512,6 @@ "node": ">=0.4.0" } }, - "node_modules/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 - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -20358,12 +20351,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "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.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", diff --git a/package.json b/package.json index b1bf1c4569..c221a4645d 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,6 @@ "mocha": "^9.0.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", - "promise-polyfill": "^8.2.0", "puppeteer": "^16.1.1", "rollup": "^2.78.0", "rollup-plugin-json": "^4.0.0", diff --git a/test/config/karma.distro.js b/test/config/karma.distro.js index 9472316f40..a01c84b7e6 100644 --- a/test/config/karma.distro.js +++ b/test/config/karma.distro.js @@ -21,7 +21,6 @@ module.exports = function(karma) { ], 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', diff --git a/test/config/karma.unit.js b/test/config/karma.unit.js index 1314938b27..f2d29acb69 100644 --- a/test/config/karma.unit.js +++ b/test/config/karma.unit.js @@ -33,7 +33,6 @@ module.exports = function(karma) { ], files: [ - 'node_modules/promise-polyfill/dist/polyfill.js', suite ], From 603f541a3eebda117ac1d944fc35993e9e0922ad Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 30 Sep 2022 10:00:08 +0200 Subject: [PATCH 136/989] test: increase complex copy+paste test timeout --- test/spec/ModelerSpec.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/spec/ModelerSpec.js b/test/spec/ModelerSpec.js index 64e7b018df..bc82eb2c61 100644 --- a/test/spec/ModelerSpec.js +++ b/test/spec/ModelerSpec.js @@ -718,6 +718,8 @@ 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'); From 91e31c827100eac381d0c6b8df0ae37f567b4a1c Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 30 Sep 2022 10:00:50 +0200 Subject: [PATCH 137/989] chore: update karma* --- package-lock.json | 71 +++++++++++++++++++++++++++++------------------ package.json | 4 +-- 2 files changed, 46 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index ab0e87d9f9..6d395feb89 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,10 +37,10 @@ "eslint-plugin-bpmn-io": "^0.16.0", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", - "karma": "^6.4.0", + "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", "karma-coverage": "^2.2.0", - "karma-debug-launcher": "0.0.4", + "karma-debug-launcher": "^0.0.5", "karma-env-preprocessor": "^0.1.1", "karma-firefox-launcher": "^2.1.2", "karma-mocha": "^2.0.1", @@ -2923,6 +2923,15 @@ "node": ">=0.10.0" } }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -6995,9 +7004,9 @@ "dev": true }, "node_modules/karma": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.0.tgz", - "integrity": "sha512-s8m7z0IF5g/bS5ONT7wsOavhW4i4aFkzD4u4wgzAQWT4HGUeWI3i21cK2Yz6jndMAeHETp5XuNsRoyGJZXVd4w==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz", + "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==", "dev": true, "dependencies": { "@colors/colors": "1.5.0", @@ -7093,12 +7102,12 @@ } }, "node_modules/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==", + "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": "^7.3.0" + "open": "^8.4.0" }, "engines": { "node": ">= 14" @@ -9198,16 +9207,17 @@ } }, "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15385,6 +15395,12 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, + "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.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -18458,9 +18474,9 @@ "dev": true }, "karma": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.0.tgz", - "integrity": "sha512-s8m7z0IF5g/bS5ONT7wsOavhW4i4aFkzD4u4wgzAQWT4HGUeWI3i21cK2Yz6jndMAeHETp5XuNsRoyGJZXVd4w==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz", + "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==", "dev": true, "requires": { "@colors/colors": "1.5.0", @@ -18699,12 +18715,12 @@ } }, "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==", + "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": { - "open": "^7.3.0" + "open": "^8.4.0" } }, "karma-env-preprocessor": { @@ -20123,13 +20139,14 @@ } }, "open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" } }, "optionator": { diff --git a/package.json b/package.json index c221a4645d..fc8f0a881f 100644 --- a/package.json +++ b/package.json @@ -69,10 +69,10 @@ "eslint-plugin-bpmn-io": "^0.16.0", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", - "karma": "^6.4.0", + "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", "karma-coverage": "^2.2.0", - "karma-debug-launcher": "0.0.4", + "karma-debug-launcher": "^0.0.5", "karma-env-preprocessor": "^0.1.1", "karma-firefox-launcher": "^2.1.2", "karma-mocha": "^2.0.1", From 09a22969367669b756cd40b7f1a62ec4970c13bc Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 30 Sep 2022 10:01:55 +0200 Subject: [PATCH 138/989] chore: update puppeteer to v18 --- package-lock.json | 157 +++++----------------------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 143 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6d395feb89..d27b965386 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,7 +51,7 @@ "mocha": "^9.0.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", - "puppeteer": "^16.1.1", + "puppeteer": "^18.0.5", "rollup": "^2.78.0", "rollup-plugin-json": "^4.0.0", "rollup-plugin-license": "^2.8.1", @@ -3082,9 +3082,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1019158", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz", - "integrity": "sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==", + "version": "0.0.1036444", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1036444.tgz", + "integrity": "sha512-0y4f/T8H9lsESV9kKP1HDUXgHxCdniFeJh6Erq+FbdOEvp/Ydp9t8kcAAM5gOd17pMrTDlFWntoHtzzeTUWKNw==", "dev": true }, "node_modules/di": { @@ -9559,18 +9559,17 @@ } }, "node_modules/puppeteer": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-16.1.1.tgz", - "integrity": "sha512-lBneizsNF0zi1/iog9c0ogVnvDHJG4IWpkdIAgE2oiDKhr0MJRV8JeM2xbhUwCwhDJXjjVS2TNCZdLsMp9Ojdg==", + "version": "18.0.5", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-18.0.5.tgz", + "integrity": "sha512-s4erjxU0VtKojPvF+KvLKG6OHUPw7gO2YV1dtOsoryyCbhrs444fXb4QZqGWuTv3V/rgSCUzeixxu34g0ZkSMA==", "dev": true, "hasInstallScript": true, "dependencies": { "cross-fetch": "3.1.5", "debug": "4.3.4", - "devtools-protocol": "0.0.1019158", + "devtools-protocol": "0.0.1036444", "extract-zip": "2.0.1", "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", "progress": "2.0.3", "proxy-from-env": "1.1.0", "rimraf": "3.0.2", @@ -9619,85 +9618,12 @@ "@types/yauzl": "^2.9.1" } }, - "node_modules/puppeteer/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/puppeteer/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/puppeteer/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/puppeteer/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/puppeteer/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/puppeteer/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/puppeteer/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", @@ -15515,9 +15441,9 @@ "dev": true }, "devtools-protocol": { - "version": "0.0.1019158", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz", - "integrity": "sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==", + "version": "0.0.1036444", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1036444.tgz", + "integrity": "sha512-0y4f/T8H9lsESV9kKP1HDUXgHxCdniFeJh6Erq+FbdOEvp/Ydp9t8kcAAM5gOd17pMrTDlFWntoHtzzeTUWKNw==", "dev": true }, "di": { @@ -20402,17 +20328,16 @@ "dev": true }, "puppeteer": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-16.1.1.tgz", - "integrity": "sha512-lBneizsNF0zi1/iog9c0ogVnvDHJG4IWpkdIAgE2oiDKhr0MJRV8JeM2xbhUwCwhDJXjjVS2TNCZdLsMp9Ojdg==", + "version": "18.0.5", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-18.0.5.tgz", + "integrity": "sha512-s4erjxU0VtKojPvF+KvLKG6OHUPw7gO2YV1dtOsoryyCbhrs444fXb4QZqGWuTv3V/rgSCUzeixxu34g0ZkSMA==", "dev": true, "requires": { "cross-fetch": "3.1.5", "debug": "4.3.4", - "devtools-protocol": "0.0.1019158", + "devtools-protocol": "0.0.1036444", "extract-zip": "2.0.1", "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", "progress": "2.0.3", "proxy-from-env": "1.1.0", "rimraf": "3.0.2", @@ -20442,63 +20367,11 @@ "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" - } } } }, diff --git a/package.json b/package.json index fc8f0a881f..249fb56d14 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "mocha": "^9.0.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", - "puppeteer": "^16.1.1", + "puppeteer": "^18.0.5", "rollup": "^2.78.0", "rollup-plugin-json": "^4.0.0", "rollup-plugin-license": "^2.8.1", From a99ddd25e91eabb1f309332868a5b40ced21e915 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sun, 2 Oct 2022 21:21:30 +0200 Subject: [PATCH 139/989] deps: update to bpmn-moddle@8 --- package-lock.json | 98 +++++++++++++++-------------------------------- package.json | 2 +- 2 files changed, 32 insertions(+), 68 deletions(-) diff --git a/package-lock.json b/package-lock.json index d27b965386..af72bbae00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "10.1.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { - "bpmn-moddle": "^7.1.3", + "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", "diagram-js": "^9.1.0", "diagram-js-direct-editing": "^2.0.0", @@ -2222,20 +2222,15 @@ "dev": true }, "node_modules/bpmn-moddle": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-7.1.3.tgz", - "integrity": "sha512-ZcBfw0NSOdYTSXFKEn7MOXHItz7VfLZTrFYKO8cK6V8ZzGjCcdiLIOiw7Lctw1PJsihhLiZQS8Htj2xKf+NwCg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-8.0.0.tgz", + "integrity": "sha512-mHmtIVzUyZcPMKKl/REq151gYxEtZxvivKnIEp/RtuRm8SOgxAK58uYBkP+jQQBy6XudwObRTH0pwyeKLALWrA==", "dependencies": { - "min-dash": "^3.5.2", - "moddle": "^5.0.2", - "moddle-xml": "^9.0.6" + "min-dash": "^4.0.0", + "moddle": "^6.0.0", + "moddle-xml": "^10.0.0" } }, - "node_modules/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==" - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -8204,33 +8199,23 @@ } }, "node_modules/moddle": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/moddle/-/moddle-5.0.3.tgz", - "integrity": "sha512-EjnQkSaZClHMsM3H/guBy9h7AmHUICH0Pf8H1VnnYGUXy2hkZQU4gqEAyHywJzMRAhYX87pXjH2NtyigF7evkA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/moddle/-/moddle-6.0.0.tgz", + "integrity": "sha512-dHYSJpGV0R0X8cJeWWUnE0VqCA0SFP0jZYQtO23EdsBk+MpAgSpdhXadYR6WbHElKroB6XTbifpsWro26UlP6Q==", "dependencies": { - "min-dash": "^3.0.0" + "min-dash": "^4.0.0" } }, "node_modules/moddle-xml": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-9.0.6.tgz", - "integrity": "sha512-tl0reHpsY/aKlLGhXeFlQWlYAQHFxTkFqC8tq8jXRYpQSnLVw13T6swMaourLd7EXqHdWsc+5ggsB+fEep6xZQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-10.0.0.tgz", + "integrity": "sha512-e5qG0uC9ebHXInLEKW9pZNqcAK7ALCOKmcLw8jmepBPY9BiUZFi+8Th/Cydog3S1rrUXyyo0pqaHaCvc1zt6VA==", "dependencies": { - "min-dash": "^3.5.2", - "moddle": "^5.0.2", + "min-dash": "^4.0.0", + "moddle": "^6.0.0", "saxen": "^8.1.2" } }, - "node_modules/moddle-xml/node_modules/min-dash": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", - "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" - }, - "node_modules/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==" - }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -14777,20 +14762,13 @@ "dev": true }, "bpmn-moddle": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-7.1.3.tgz", - "integrity": "sha512-ZcBfw0NSOdYTSXFKEn7MOXHItz7VfLZTrFYKO8cK6V8ZzGjCcdiLIOiw7Lctw1PJsihhLiZQS8Htj2xKf+NwCg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-8.0.0.tgz", + "integrity": "sha512-mHmtIVzUyZcPMKKl/REq151gYxEtZxvivKnIEp/RtuRm8SOgxAK58uYBkP+jQQBy6XudwObRTH0pwyeKLALWrA==", "requires": { - "min-dash": "^3.5.2", - "moddle": "^5.0.2", - "moddle-xml": "^9.0.6" - }, - "dependencies": { - "min-dash": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", - "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" - } + "min-dash": "^4.0.0", + "moddle": "^6.0.0", + "moddle-xml": "^10.0.0" } }, "brace-expansion": { @@ -19314,35 +19292,21 @@ "dev": true }, "moddle": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/moddle/-/moddle-5.0.3.tgz", - "integrity": "sha512-EjnQkSaZClHMsM3H/guBy9h7AmHUICH0Pf8H1VnnYGUXy2hkZQU4gqEAyHywJzMRAhYX87pXjH2NtyigF7evkA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/moddle/-/moddle-6.0.0.tgz", + "integrity": "sha512-dHYSJpGV0R0X8cJeWWUnE0VqCA0SFP0jZYQtO23EdsBk+MpAgSpdhXadYR6WbHElKroB6XTbifpsWro26UlP6Q==", "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==" - } + "min-dash": "^4.0.0" } }, "moddle-xml": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-9.0.6.tgz", - "integrity": "sha512-tl0reHpsY/aKlLGhXeFlQWlYAQHFxTkFqC8tq8jXRYpQSnLVw13T6swMaourLd7EXqHdWsc+5ggsB+fEep6xZQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-10.0.0.tgz", + "integrity": "sha512-e5qG0uC9ebHXInLEKW9pZNqcAK7ALCOKmcLw8jmepBPY9BiUZFi+8Th/Cydog3S1rrUXyyo0pqaHaCvc1zt6VA==", "requires": { - "min-dash": "^3.5.2", - "moddle": "^5.0.2", + "min-dash": "^4.0.0", + "moddle": "^6.0.0", "saxen": "^8.1.2" - }, - "dependencies": { - "min-dash": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", - "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" - } } }, "moment": { diff --git a/package.json b/package.json index 249fb56d14..7a8d46f209 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "webpack": "^5.74.0" }, "dependencies": { - "bpmn-moddle": "^7.1.3", + "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", "diagram-js": "^9.1.0", "diagram-js-direct-editing": "^2.0.0", From b4a10ca591a8152bfaf164d3938fd33ac4bcbb68 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sun, 2 Oct 2022 21:22:07 +0200 Subject: [PATCH 140/989] chore(CHANGELOG): update to v10.2.0 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b83b23b14f..9a899dbfd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 10.2.0 + +* `DEPS`: update to `bpmn-moddle@8` + ## 10.1.0 * `DEPS`: update to `diagram-js@9.1.0` From c4431b0f16bd2033434148650ca401a0077307f8 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sun, 2 Oct 2022 21:25:44 +0200 Subject: [PATCH 141/989] 10.2.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index af72bbae00..2b59fd20bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "10.1.0", + "version": "10.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "10.1.0", + "version": "10.2.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 7a8d46f209..257f3a6bd1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "10.1.0", + "version": "10.2.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 88ef7388a79f4aa76da5c841ca28ebb3a30fd9f2 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 4 Oct 2022 10:07:56 +0200 Subject: [PATCH 142/989] chore(CHANGELOG): add notice on library target update --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a899dbfd2..8a01f7584e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ ___Note:__ Yet to be released changes appear here._ ## 10.0.0 +_Updates the library target to ES2018._ + * `FEAT`: use ES2018 syntax ([#1737](https://github.com/bpmn-io/bpmn-js/pull/1737)) ### Breaking Changes From 0d5aeb4906b04142c5f2ec1ed10536a034500c71 Mon Sep 17 00:00:00 2001 From: Philipp Date: Fri, 14 Oct 2022 15:26:29 +0200 Subject: [PATCH 143/989] chore: remove edge case handling from rule --- lib/features/rules/BpmnRules.js | 23 --- ...nRules.eventBasedGatewayConfiguration.bpmn | 96 ---------- test/spec/features/rules/BpmnRulesSpec.js | 172 ------------------ 3 files changed, 291 deletions(-) delete mode 100644 test/spec/features/rules/BpmnRules.eventBasedGatewayConfiguration.bpmn diff --git a/lib/features/rules/BpmnRules.js b/lib/features/rules/BpmnRules.js index a2a0009110..6b252bdd0c 100644 --- a/lib/features/rules/BpmnRules.js +++ b/lib/features/rules/BpmnRules.js @@ -855,16 +855,6 @@ function canConnectMessageFlow(source, target) { } function canConnectSequenceFlow(source, target) { - - if ( - isEventBasedTarget(target) && - target.incoming.length > 0 && - areOutgoingEventBasedGatewayConnections(target.incoming) && - !is(source, 'bpmn:EventBasedGateway') - ) { - return false; - } - return isSequenceFlowSource(source) && isSequenceFlowTarget(target) && isSameScope(source, target) && @@ -936,19 +926,6 @@ function canCopy(elements, element) { return true; } -function isOutgoingEventBasedGatewayConnection(connection) { - - if (connection && connection.source) { - return is(connection.source, 'bpmn:EventBasedGateway'); - } -} - -function areOutgoingEventBasedGatewayConnections(connections) { - connections = connections || []; - - return connections.some(isOutgoingEventBasedGatewayConnection); -} - function getRootElement(element) { return getParent(element, 'bpmn:Process') || getParent(element, 'bpmn:Collaboration'); } 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 bfd9767873..90c2f3e145 100644 --- a/test/spec/features/rules/BpmnRulesSpec.js +++ b/test/spec/features/rules/BpmnRulesSpec.js @@ -723,178 +723,6 @@ 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 - }); - }); - - - it('connect Task -> IntermediateCatchEvent_Timer', function() { - - expectCanConnect('Task', 'IntermediateCatchEvent_Timer', { - sequenceFlow: false, - messageFlow: false, - association: false, - dataAssociation: false - }); - }); - - - it('connect Task -> IntermediateCatchEvent_Condition', function() { - - expectCanConnect('Task', 'IntermediateCatchEvent_Condition', { - sequenceFlow: false, - messageFlow: false, - association: false, - dataAssociation: false - }); - }); - - - it('connect Task -> IntermediateCatchEvent_Signal', function() { - - expectCanConnect('Task', 'IntermediateCatchEvent_Signal', { - sequenceFlow: false, - messageFlow: false, - association: false, - dataAssociation: false - }); - }); - - }); - }); - - describe('compensation', function() { var testXML = require('./BpmnRules.compensation.bpmn'); From b0049f9813f699b444675540389b2e714c15e171 Mon Sep 17 00:00:00 2001 From: Philipp Date: Fri, 14 Oct 2022 16:13:05 +0200 Subject: [PATCH 144/989] fix: consistently ensure BPMN 2.0 compliance through behavior Closes #1738 --- .../behavior/EventBasedGatewayBehavior.js | 83 +++-- .../behavior/EventBasedGatewayBehavior.bpmn | 352 +++++------------- .../behavior/EventBasedGatewayBehaviorSpec.js | 136 ++++--- 3 files changed, 226 insertions(+), 345 deletions(-) diff --git a/lib/features/modeling/behavior/EventBasedGatewayBehavior.js b/lib/features/modeling/behavior/EventBasedGatewayBehavior.js index 503dfa1923..6d8a90a6ca 100644 --- a/lib/features/modeling/behavior/EventBasedGatewayBehavior.js +++ b/lib/features/modeling/behavior/EventBasedGatewayBehavior.js @@ -9,62 +9,75 @@ export default function EventBasedGatewayBehavior(eventBus, modeling) { CommandInterceptor.call(this, eventBus); /** - * Remove existing sequence flows of event-based target before connecting - * from event-based gateway. + * Remove incoming sequence flows of event-based target when creating + * sequence flow. + * + * 1. If source is event-based gateway remove all incoming sequence flows + * 2. If source is not event-based gateway remove all incoming sequence flows + * whose source is event-based gateway */ this.preExecuted('connection.create', function(event) { - var context = event.context, + connection = context.connection, source = context.source, target = context.target, - existingIncomingConnections = target.incoming.slice(); + hints = context.hints; - if (context.hints && context.hints.createElementsBehavior === false) { + if (hints && hints.createElementsBehavior === false) { return; } - if ( - is(source, 'bpmn:EventBasedGateway') && - target.incoming.length - ) { + if (!isSequenceFlow(connection)) { + return; + } - existingIncomingConnections.filter(isSequenceFlow) - .forEach(function(sequenceFlow) { - modeling.removeConnection(sequenceFlow); - }); + var sequenceFlows = []; + + if (is(source, 'bpmn:EventBasedGateway')) { + sequenceFlows = target.incoming.filter(isSequenceFlow); + } else { + sequenceFlows = target.incoming.filter(function(connection) { + return isSequenceFlow(connection) + && is(connection.source, 'bpmn:EventBasedGateway'); + }); } + + sequenceFlows.forEach(function(sequenceFlow) { + modeling.removeConnection(sequenceFlow); + }); }); /** - * After replacing shape with event-based gateway, remove incoming sequence - * flows of event-based targets which do not belong to event-based gateway - * source. + * Remove incoming sequence flows of event-based targets when replacing source + * with event-based gateway. */ this.preExecuted('shape.replace', function(event) { - - var newShape = event.context.newShape, - newShapeTargets, - newShapeTargetsIncomingSequenceFlows; + var context = event.context, + newShape = context.newShape; if (!is(newShape, 'bpmn:EventBasedGateway')) { return; } - newShapeTargets = newShape.outgoing.filter(isSequenceFlow) - .map(function(sequenceFlow) { - return sequenceFlow.target; - }); + var targets = newShape.outgoing.filter(isSequenceFlow) + .reduce(function(targets, sequenceFlow) { + if (!targets.includes(sequenceFlow.target)) { + return targets.concat(sequenceFlow.target); + } - newShapeTargetsIncomingSequenceFlows = newShapeTargets.reduce(function(sequenceFlows, target) { - var incomingSequenceFlows = target.incoming.filter(isSequenceFlow); + return targets; + }, []); - return sequenceFlows.concat(incomingSequenceFlows); - }, []); + targets.forEach(function(target) { + target.incoming.filter(isSequenceFlow).forEach(function(sequenceFlow) { + const sequenceFlowsFromNewShape = target.incoming.filter(isSequenceFlow).filter(function(sequenceFlow) { + return sequenceFlow.source === newShape; + }); - newShapeTargetsIncomingSequenceFlows.forEach(function(sequenceFlow) { - if (sequenceFlow.source !== newShape) { - modeling.removeConnection(sequenceFlow); - } + if (sequenceFlow.source !== newShape || sequenceFlowsFromNewShape.length > 1) { + modeling.removeConnection(sequenceFlow); + } + }); }); }); } @@ -76,10 +89,8 @@ EventBasedGatewayBehavior.$inject = [ inherits(EventBasedGatewayBehavior, CommandInterceptor); - - -// helpers ////////////////////// +// helpers ////////// function isSequenceFlow(connection) { return is(connection, 'bpmn:SequenceFlow'); -} +} \ No newline at end of file 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..0c7f81c296 100644 --- a/test/spec/features/modeling/behavior/EventBasedGatewayBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/EventBasedGatewayBehaviorSpec.js @@ -11,98 +11,136 @@ describe('features/modeling/behavior - event-based gateway', function() { var diagramXML = require('./EventBasedGatewayBehavior.bpmn'); - describe('when connecting from event-based gateway', function() { - - beforeEach(bootstrapModeler( - diagramXML, { - modules: [ - coreModule, - modelingModule - ] + 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'); + + // 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 + })); + + + 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' + }); - beforeEach(bootstrapModeler( - diagramXML, { - modules: [ - coreModule, - modelingModule, - replaceModule - ] + // 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); + } + )); }); From 819ce43dd9441d430d0f9dc0980583d29b2e2f2f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 17 Oct 2022 22:23:09 +0200 Subject: [PATCH 145/989] ci: update to `setup-node@v2` --- .github/workflows/CI.yml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index b4dad1d04d..32abe6fa00 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -13,18 +13,10 @@ jobs: - name: Checkout uses: actions/checkout@v2 - name: Use Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: 16 - - name: Cache Node.js modules - uses: actions/cache@v2 - with: - # npm cache files are stored in `~/.npm` on Linux/macOS - path: ~/.npm - key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.OS }}-node- - ${{ runner.OS }}- + cache: 'npm' - name: Install dependencies run: npm ci - name: Wire dependencies From 693b3d2057b6f8cf6cbe25b491271a458d8640c5 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 17 Oct 2022 22:25:23 +0200 Subject: [PATCH 146/989] chore(CHANGELOG): update to v10.2.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a01f7584e..d921fe10ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 10.2.1 + +* `FIX`: correct preserving of outgoing connections on event-based gateway morph ([#1738](https://github.com/bpmn-io/bpmn-js/issues/1738)) + ## 10.2.0 * `DEPS`: update to `bpmn-moddle@8` From 95fdd5b966eadd5add6701203261a94332568775 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 17 Oct 2022 22:28:02 +0200 Subject: [PATCH 147/989] 10.2.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b59fd20bd..625fe1a413 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "10.2.0", + "version": "10.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "10.2.0", + "version": "10.2.1", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 257f3a6bd1..3b41b123e6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "10.2.0", + "version": "10.2.1", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From d9829cfce6ec1c5232cd8559472ac6a4afe92b5b Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 17 Oct 2022 22:42:39 +0200 Subject: [PATCH 148/989] ci: use `setup-node` cache behavior --- .github/workflows/POST_RELEASE.yml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/POST_RELEASE.yml b/.github/workflows/POST_RELEASE.yml index 419d249a0d..fab4d2aa08 100644 --- a/.github/workflows/POST_RELEASE.yml +++ b/.github/workflows/POST_RELEASE.yml @@ -26,15 +26,7 @@ jobs: uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} - - name: Cache Node.js modules - uses: actions/cache@v2 - with: - # npm cache files are stored in `~/.npm` on Linux/macOS - path: ~/.npm - key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.OS }}-node- - ${{ runner.OS }}- + cache: 'npm' - name: Check for stable release run: | if [[ ${{ env.TAG }} =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] From d761c28796d627c93034715fce2d87ca1b5d8ff4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 17 Oct 2022 20:53:04 +0000 Subject: [PATCH 149/989] chore: update actions/checkout action to v3 --- .github/workflows/CI.yml | 2 +- .github/workflows/MERGE_MASTER_TO_DEVELOP.yml | 2 +- .github/workflows/POST_RELEASE.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 32abe6fa00..babe9943bd 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -11,7 +11,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Use Node.js uses: actions/setup-node@v2 with: diff --git a/.github/workflows/MERGE_MASTER_TO_DEVELOP.yml b/.github/workflows/MERGE_MASTER_TO_DEVELOP.yml index cdcafa24c7..6e0e42f337 100644 --- a/.github/workflows/MERGE_MASTER_TO_DEVELOP.yml +++ b/.github/workflows/MERGE_MASTER_TO_DEVELOP.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Checkout develop - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: develop fetch-depth: 0 diff --git a/.github/workflows/POST_RELEASE.yml b/.github/workflows/POST_RELEASE.yml index fab4d2aa08..3a91470d70 100644 --- a/.github/workflows/POST_RELEASE.yml +++ b/.github/workflows/POST_RELEASE.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set TAG run: echo "TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV - name: Wait for published From 6601498620b557c8dbf4002492b076f450d532bd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Oct 2022 01:00:37 +0000 Subject: [PATCH 150/989] chore: update actions/setup-node action to v3 --- .github/workflows/CI.yml | 2 +- .github/workflows/POST_RELEASE.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index babe9943bd..8d112f2ab6 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Use Node.js - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: 16 cache: 'npm' diff --git a/.github/workflows/POST_RELEASE.yml b/.github/workflows/POST_RELEASE.yml index 3a91470d70..761c0be732 100644 --- a/.github/workflows/POST_RELEASE.yml +++ b/.github/workflows/POST_RELEASE.yml @@ -23,7 +23,7 @@ jobs: PKG: 'bpmn-js@${{ env.TAG }}' run: tasks/stages/await-published - name: Use Node.js - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: 'npm' From 16498a88597295a43e15330bf4e5bc55843ee4fe Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 1 Jul 2021 17:22:06 +0200 Subject: [PATCH 151/989] feat(space-tool): add BPMN space tool * do not resize text annotations Related to camunda/camunda-modeler#1371 --- lib/features/modeling/index.js | 2 +- lib/features/palette/index.js | 2 +- lib/features/space-tool/BpmnSpaceTool.js | 27 ++ lib/features/space-tool/index.js | 8 + .../features/modeling/SpaceTool.basic.bpmn | 61 --- .../features/modeling/SpaceTool.case1.bpmn | 32 -- test/spec/features/modeling/SpaceToolSpec.js | 260 ----------- .../space-tool/BpmnSpaceTool.basics.bpmn | 91 ++++ .../BpmnSpaceTool.text-annotations.bpmn | 24 + .../features/space-tool/BpmnSpaceToolSpec.js | 413 ++++++++++++++++++ 10 files changed, 565 insertions(+), 355 deletions(-) create mode 100644 lib/features/space-tool/BpmnSpaceTool.js create mode 100644 lib/features/space-tool/index.js delete mode 100644 test/spec/features/modeling/SpaceTool.basic.bpmn delete mode 100644 test/spec/features/modeling/SpaceTool.case1.bpmn delete mode 100644 test/spec/features/modeling/SpaceToolSpec.js create mode 100644 test/spec/features/space-tool/BpmnSpaceTool.basics.bpmn create mode 100644 test/spec/features/space-tool/BpmnSpaceTool.text-annotations.bpmn create mode 100644 test/spec/features/space-tool/BpmnSpaceToolSpec.js diff --git a/lib/features/modeling/index.js b/lib/features/modeling/index.js index 0d5b89b40c..7365f74d07 100644 --- a/lib/features/modeling/index.js +++ b/lib/features/modeling/index.js @@ -3,6 +3,7 @@ import RulesModule from '../rules'; import DiOrderingModule from '../di-ordering'; import OrderingModule from '../ordering'; import ReplaceModule from '../replace'; +import SpaceToolModule from '../space-tool'; import CommandModule from 'diagram-js/lib/command'; import TooltipsModule from 'diagram-js/lib/features/tooltips'; @@ -10,7 +11,6 @@ import LabelSupportModule from 'diagram-js/lib/features/label-support'; import AttachSupportModule from 'diagram-js/lib/features/attach-support'; import SelectionModule from 'diagram-js/lib/features/selection'; import ChangeSupportModule from 'diagram-js/lib/features/change-support'; -import SpaceToolModule from 'diagram-js/lib/features/space-tool'; import BpmnFactory from './BpmnFactory'; import BpmnUpdater from './BpmnUpdater'; diff --git a/lib/features/palette/index.js b/lib/features/palette/index.js index ed93fba45b..c635fd8ceb 100644 --- a/lib/features/palette/index.js +++ b/lib/features/palette/index.js @@ -1,6 +1,6 @@ import PaletteModule from 'diagram-js/lib/features/palette'; import CreateModule from 'diagram-js/lib/features/create'; -import SpaceToolModule from 'diagram-js/lib/features/space-tool'; +import SpaceToolModule from '../space-tool'; import LassoToolModule from 'diagram-js/lib/features/lasso-tool'; import HandToolModule from 'diagram-js/lib/features/hand-tool'; import GlobalConnectModule from 'diagram-js/lib/features/global-connect'; diff --git a/lib/features/space-tool/BpmnSpaceTool.js b/lib/features/space-tool/BpmnSpaceTool.js new file mode 100644 index 0000000000..7e58c6dc5b --- /dev/null +++ b/lib/features/space-tool/BpmnSpaceTool.js @@ -0,0 +1,27 @@ +import inherits from 'inherits'; + +import SpaceTool from 'diagram-js/lib/features/space-tool/SpaceTool'; + +import { is } from '../../util/ModelUtil'; + + +export default function BpmnSpaceTool(injector) { + injector.invoke(SpaceTool, this); +} + +BpmnSpaceTool.$inject = [ + 'injector' +]; + +inherits(BpmnSpaceTool, SpaceTool); + +BpmnSpaceTool.prototype.calculateAdjustments = function(elements, axis, delta, start) { + var adjustments = SpaceTool.prototype.calculateAdjustments.call(this, elements, axis, delta, start); + + // do not resize text annotations + adjustments.resizingShapes = adjustments.resizingShapes.filter(function(shape) { + return !is(shape, 'bpmn:TextAnnotation'); + }); + + return adjustments; +}; \ No newline at end of file diff --git a/lib/features/space-tool/index.js b/lib/features/space-tool/index.js new file mode 100644 index 0000000000..45d0053fa6 --- /dev/null +++ b/lib/features/space-tool/index.js @@ -0,0 +1,8 @@ +import SpaceToolModule from 'diagram-js/lib/features/space-tool'; + +import BpmnSpaceTool from './BpmnSpaceTool'; + +export default { + __depends__: [ SpaceToolModule ], + spaceTool: [ 'type', BpmnSpaceTool ] +}; \ No newline at end of file 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/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.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..b5456519b0 --- /dev/null +++ b/test/spec/features/space-tool/BpmnSpaceToolSpec.js @@ -0,0 +1,413 @@ +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 { 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() { + + 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(elementRegistry) { + + // given + var subProcess1 = elementRegistry.get('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(elementRegistry) { + + // given + var endEvent1 = elementRegistry.get('EndEvent_1'), + endEvent2 = elementRegistry.get('EndEvent_2'), + endEvent1Label = endEvent1.label, + endEvent2Label = endEvent2.label, + sequenceFlow2 = elementRegistry.get('SequenceFlow_2'), + sequenceFlow4 = elementRegistry.get('SequenceFlow_4'), + subProcess1 = elementRegistry.get('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(elementRegistry) { + + // given + var subProcess1 = elementRegistry.get('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(elementRegistry) { + + // given + var startEvent1 = elementRegistry.get('StartEvent_1'), + startEvent2 = elementRegistry.get('StartEvent_2'), + startEvent1Label = startEvent1.label, + startEvent2Label = startEvent2.label, + sequenceFlow1 = elementRegistry.get('SequenceFlow_1'), + sequenceFlow3 = elementRegistry.get('SequenceFlow_3'), + subProcess1 = elementRegistry.get('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(elementRegistry) { + + // given + var subProcess1 = elementRegistry.get('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(elementRegistry) { + + // given + var endEvent1 = elementRegistry.get('EndEvent_1'), + endEvent2 = elementRegistry.get('EndEvent_2'), + endEvent1Label = endEvent1.label, + endEvent2Label = endEvent2.label, + sequenceFlow2 = elementRegistry.get('SequenceFlow_2'), + sequenceFlow4 = elementRegistry.get('SequenceFlow_4'), + subProcess1 = elementRegistry.get('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(elementRegistry) { + + // given + var subProcess1 = elementRegistry.get('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(elementRegistry) { + + // given + var startEvent1 = elementRegistry.get('StartEvent_1'), + startEvent2 = elementRegistry.get('StartEvent_2'), + startEvent1Label = startEvent1.label, + startEvent2Label = startEvent2.label, + sequenceFlow1 = elementRegistry.get('SequenceFlow_1'), + sequenceFlow3 = elementRegistry.get('SequenceFlow_3'), + subProcess1 = elementRegistry.get('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 = elementRegistry.get('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); + })); + + }); + +}); + + +// helpers ////////// + +function makeSpace(start, delta, invert) { + 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 getBounds(shape) { + return pick(shape, [ 'x', 'y', 'width', 'height' ]); +} \ No newline at end of file From 359434c201d955507ba71cb9c5492a56423db2c6 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 1 Jul 2021 17:23:05 +0200 Subject: [PATCH 152/989] test: refactor integration test --- .../modeling/LabelLayouting.integration.bpmn | 30 ++++++++ .../modeling/LabelLayouting.special.bpmn | 76 ------------------- .../features/modeling/LabelLayoutingSpec.js | 20 ++--- 3 files changed, 38 insertions(+), 88 deletions(-) create mode 100644 test/spec/features/modeling/LabelLayouting.integration.bpmn delete mode 100644 test/spec/features/modeling/LabelLayouting.special.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..f7d0334e90 100644 --- a/test/spec/features/modeling/LabelLayoutingSpec.js +++ b/test/spec/features/modeling/LabelLayoutingSpec.js @@ -285,7 +285,6 @@ describe('modeling - label layouting', function() { describe('on bendpoint add/delete/moving', function() { - it('move, label on segment', inject(function(elementRegistry, bendpointMove, dragging) { // given @@ -521,7 +520,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 +531,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(); })); }); From 57bfc2fcef4232387ac3c4ab6b6fe32a0aecc6e0 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 1 Jul 2021 17:23:31 +0200 Subject: [PATCH 153/989] test: actually test whether it throws --- test/spec/features/context-pad/ContextPadProviderSpec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/spec/features/context-pad/ContextPadProviderSpec.js b/test/spec/features/context-pad/ContextPadProviderSpec.js index c17c7e518b..182623707d 100644 --- a/test/spec/features/context-pad/ContextPadProviderSpec.js +++ b/test/spec/features/context-pad/ContextPadProviderSpec.js @@ -124,7 +124,7 @@ describe('features - context-pad', function() { // then expect(function() { contextPad.open(element); - }).not.to.throw; + }).not.to.throw(); })); From 850a3634ac61c301ee901763babc4bffac4b764d Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 1 Jul 2021 20:51:53 +0200 Subject: [PATCH 154/989] test(space-tool): add integration tests for boundary events --- .../BpmnSpaceTool.boundary-events.bpmn | 32 +++++++++ .../features/space-tool/BpmnSpaceToolSpec.js | 66 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 test/spec/features/space-tool/BpmnSpaceTool.boundary-events.bpmn 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/BpmnSpaceToolSpec.js b/test/spec/features/space-tool/BpmnSpaceToolSpec.js index b5456519b0..babf613aa3 100644 --- a/test/spec/features/space-tool/BpmnSpaceToolSpec.js +++ b/test/spec/features/space-tool/BpmnSpaceToolSpec.js @@ -386,6 +386,72 @@ describe('features/space-tool - BpmnSpaceTool', function() { }); + + 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(elementRegistry) { + + // given + var boundaryEvent = elementRegistry.get('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(elementRegistry) { + + // given + var boundaryEvent = elementRegistry.get('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(elementRegistry) { + + // given + var boundaryEvent = elementRegistry.get('BoundaryEvent_2'); + + var boundaryEventMid = getMid(boundaryEvent); + + // when + makeSpace({ x: boundaryEventMid.x + 5, y: boundaryEventMid.y }, { dx: 100 }); + + // then + expect(getMid(boundaryEvent)).to.eql(boundaryEventMid); + })); + + }); + }); From 4e77940a2672b974efb212b4ace23914a70f0c90 Mon Sep 17 00:00:00 2001 From: Philipp Date: Fri, 2 Jul 2021 09:04:54 +0200 Subject: [PATCH 155/989] test: verify boundary event label position when adding lane --- test/spec/features/modeling/lanes/AddLaneSpec.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/test/spec/features/modeling/lanes/AddLaneSpec.js b/test/spec/features/modeling/lanes/AddLaneSpec.js index 6c98dfe67e..033a73c158 100644 --- a/test/spec/features/modeling/lanes/AddLaneSpec.js +++ b/test/spec/features/modeling/lanes/AddLaneSpec.js @@ -271,7 +271,7 @@ describe('features/modeling - add Lane', function() { }); - describe('flow node handling', function() { + describe('flow node handling - basics', function() { var diagramXML = require('./lanes.bpmn'); @@ -308,8 +308,10 @@ describe('features/modeling - add Lane', function() { { x: 432, y: 103 - newLane.height } ]); })); + }); + describe('flow node handling', function() { var diagramXML = require('./lanes-flow-nodes.bpmn'); @@ -420,7 +422,10 @@ describe('features/modeling - add Lane', function() { // given var event = elementRegistry.get('Event'), label = event.label, - labelPosition = getPosition(label); + labelPosition = getPosition(label), + boundary = elementRegistry.get('Boundary'), + boundaryLabel = boundary.label, + boundaryLabelPosition = getPosition(boundaryLabel); // TODO(nikku): consolidate import + editing behavior => not consistent right now @@ -435,6 +440,11 @@ 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 + }); })); }); From 521ceee13e4d6e6b6a47e9e613a3b12434f4fc7f Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 25 Oct 2022 22:17:10 +0200 Subject: [PATCH 156/989] deps: update to diagram-js v10.0.0 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 625fe1a413..5e32e9361a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^9.1.0", + "diagram-js": "^10.0.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3089,9 +3089,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-9.1.0.tgz", - "integrity": "sha512-Kh74c7iKczxrDmnnRn3Fay8+1AnOIEm22A7yxPP/1jyfGiGM1Thxp08niKru60HSpFyOguhYu4jgqOSM9fJzdw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-10.0.0.tgz", + "integrity": "sha512-VtZof5MLwVpHjTznfS7B1rQxYtpJ1Gyzse7Aan22QgMhD8FDpm0nXcIblkB//05vFJUljJfp9etNujJtmU1yvA==", "dependencies": { "css.escape": "^1.5.1", "didi": "^9.0.0", @@ -15431,9 +15431,9 @@ "dev": true }, "diagram-js": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-9.1.0.tgz", - "integrity": "sha512-Kh74c7iKczxrDmnnRn3Fay8+1AnOIEm22A7yxPP/1jyfGiGM1Thxp08niKru60HSpFyOguhYu4jgqOSM9fJzdw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-10.0.0.tgz", + "integrity": "sha512-VtZof5MLwVpHjTznfS7B1rQxYtpJ1Gyzse7Aan22QgMhD8FDpm0nXcIblkB//05vFJUljJfp9etNujJtmU1yvA==", "requires": { "css.escape": "^1.5.1", "didi": "^9.0.0", diff --git a/package.json b/package.json index 3b41b123e6..8e7e9d3c27 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^9.1.0", + "diagram-js": "^10.0.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From d676f4e962c8058fa5f04fd6aeb12317b98bd227 Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 25 Oct 2022 22:26:42 +0200 Subject: [PATCH 157/989] chore: use inherits-browser --- lib/features/space-tool/BpmnSpaceTool.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/features/space-tool/BpmnSpaceTool.js b/lib/features/space-tool/BpmnSpaceTool.js index 7e58c6dc5b..77844bc663 100644 --- a/lib/features/space-tool/BpmnSpaceTool.js +++ b/lib/features/space-tool/BpmnSpaceTool.js @@ -1,4 +1,4 @@ -import inherits from 'inherits'; +import inherits from 'inherits-browser'; import SpaceTool from 'diagram-js/lib/features/space-tool/SpaceTool'; From 2cd11cfe2f721c4aad4bf67e0136df8fca3b0186 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 7 Nov 2022 12:20:31 +0100 Subject: [PATCH 158/989] ci: pin to Ubuntu@20 --- .github/workflows/CI.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 8d112f2ab6..2ce9e6b52d 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -5,7 +5,7 @@ jobs: strategy: matrix: - os: [ macos-latest, ubuntu-latest, windows-latest ] + os: [ macos-latest, ubuntu-20.04, windows-latest ] runs-on: ${{ matrix.os }} @@ -22,16 +22,16 @@ jobs: - name: Wire dependencies run: ./tasks/wiredeps - name: Build - if: matrix.os == 'ubuntu-latest' + if: matrix.os == 'ubuntu-20.04' env: COVERAGE: 1 TEST_BROWSERS: Firefox,ChromeHeadless run: xvfb-run npm run all - name: Build - if: matrix.os != 'ubuntu-latest' + if: matrix.os != 'ubuntu-20.04' env: TEST_BROWSERS: ChromeHeadless run: npm run all - name: Upload Coverage uses: codecov/codecov-action@v2 - if: matrix.os == 'ubuntu-latest' + if: matrix.os == 'ubuntu-20.04' From 7615402469acf96df04e68e10b441bc8c2df320b Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 7 Nov 2022 12:21:42 +0100 Subject: [PATCH 159/989] ci: update to `codecov-action@3` --- .github/workflows/CI.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 2ce9e6b52d..4497d7b0e3 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -33,5 +33,7 @@ jobs: TEST_BROWSERS: ChromeHeadless run: npm run all - name: Upload Coverage - uses: codecov/codecov-action@v2 + uses: codecov/codecov-action@v3 if: matrix.os == 'ubuntu-20.04' + with: + fail_ci_if_error: true From a90023bf357705c2c11a32816245bbdf77f4c078 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Nov 2022 13:10:12 +0000 Subject: [PATCH 160/989] chore: update dependency babel-loader to v9 --- package-lock.json | 413 +++++++++++++++++++--------------------------- package.json | 2 +- 2 files changed, 174 insertions(+), 241 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5e32e9361a..324fe1d69c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "@babel/core": "^7.18.10", "@rollup/plugin-commonjs": "^22.0.2", "@rollup/plugin-node-resolve": "^13.3.0", - "babel-loader": "^8.2.5", + "babel-loader": "^9.0.0", "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.10.0", "camunda-bpmn-moddle": "^4.0.1", @@ -547,12 +547,6 @@ } } }, - "node_modules/@eslint/eslintrc/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/@eslint/eslintrc/node_modules/globals": { "version": "13.17.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", @@ -1390,6 +1384,57 @@ "node": ">=8" } }, + "node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "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, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "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, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ajv/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 + }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -1916,83 +1961,20 @@ } }, "node_modules/babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", + "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", "dev": true, "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 8.9" + "node": ">= 14.15.0" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/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, - "engines": { - "node": "*" - } - }, - "node_modules/babel-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/babel-loader/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/babel-loader/node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" + "@babel/core": "^7.12.0", + "webpack": ">=5" } }, "node_modules/babel-plugin-istanbul": { @@ -3928,12 +3910,6 @@ "node": ">=4.0" } }, - "node_modules/eslint/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/eslint/node_modules/fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -4477,6 +4453,12 @@ "node": ">=0.10.0" } }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", @@ -4691,6 +4673,23 @@ "node": ">= 0.6" } }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, "node_modules/find-index": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", @@ -10175,6 +10174,15 @@ "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, + "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", @@ -10829,54 +10837,24 @@ "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" }, "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "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.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" }, "engines": { - "node": ">= 8.9.0" + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/schema-utils/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/semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", @@ -12116,12 +12094,6 @@ "ajv": "^6.9.1" } }, - "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -12827,12 +12799,6 @@ "ajv": "^6.9.1" } }, - "node_modules/webpack/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/webpack/node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -13454,12 +13420,6 @@ "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.17.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", @@ -14163,6 +14123,44 @@ "indent-string": "^4.0.0" } }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "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" + }, + "dependencies": { + "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 + } + } + }, + "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" + } + }, + "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" + } + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -14533,57 +14531,13 @@ "dev": true }, "babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", + "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", "dev": true, "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "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 - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" } }, "babel-plugin-istanbul": { @@ -15830,12 +15784,6 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "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-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -16482,6 +16430,12 @@ "is-extglob": "^1.0.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==", + "dev": true + }, "fast-glob": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", @@ -16655,6 +16609,17 @@ } } }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, "find-index": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", @@ -20783,6 +20748,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "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 + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -21310,41 +21281,15 @@ "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" }, "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "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.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "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" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "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 - } + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" } }, "semver": { @@ -22330,12 +22275,6 @@ "dev": true, "requires": {} }, - "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 - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -22835,12 +22774,6 @@ "dev": true, "requires": {} }, - "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 - }, "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", diff --git a/package.json b/package.json index 8e7e9d3c27..d01acfab8a 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "@babel/core": "^7.18.10", "@rollup/plugin-commonjs": "^22.0.2", "@rollup/plugin-node-resolve": "^13.3.0", - "babel-loader": "^8.2.5", + "babel-loader": "^9.0.0", "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.10.0", "camunda-bpmn-moddle": "^4.0.1", From e2ee63a9d899e256165fadd82c35c38a2fd5cbc7 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 7 Nov 2022 16:03:39 +0100 Subject: [PATCH 161/989] chore: bump babel* --- package-lock.json | 400 ++++++++++++++++++++-------------------------- package.json | 4 +- 2 files changed, 172 insertions(+), 232 deletions(-) diff --git a/package-lock.json b/package-lock.json index 324fe1d69c..c4eeff1b12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,10 +21,10 @@ "tiny-svg": "^3.0.0" }, "devDependencies": { - "@babel/core": "^7.18.10", + "@babel/core": "^7.20.2", "@rollup/plugin-commonjs": "^22.0.2", "@rollup/plugin-node-resolve": "^13.3.0", - "babel-loader": "^9.0.0", + "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.10.0", "camunda-bpmn-moddle": "^4.0.1", @@ -101,30 +101,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -184,12 +184,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", - "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.3.tgz", + "integrity": "sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A==", "dev": true, "dependencies": { - "@babel/types": "^7.18.10", + "@babel/types": "^7.20.2", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -198,14 +198,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.8", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "engines": { @@ -234,13 +234,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -271,33 +271,24 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, "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", @@ -308,12 +299,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -332,19 +323,22 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@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 + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-validator-option": { "version": "7.18.6", @@ -356,14 +350,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", "dev": true, "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -383,19 +377,10 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/parser": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", - "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -419,19 +404,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", - "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", + "@babel/generator": "^7.20.1", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.11", - "@babel/types": "^7.18.10", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -463,28 +448,19 @@ "dev": true }, "node_modules/@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/types/node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -1977,6 +1953,23 @@ "webpack": ">=5" } }, + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -10399,26 +10392,6 @@ "rollup": "^2.0.0" } }, - "node_modules/rollup-plugin-terser/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/rollup-plugin-terser/node_modules/@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, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, "node_modules/rollup-pluginutils": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.6.0.tgz", @@ -12268,7 +12241,7 @@ "node_modules/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=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { "node": ">=4" @@ -13087,27 +13060,27 @@ } }, "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", "dev": true }, "@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -13145,25 +13118,25 @@ } }, "@babel/generator": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", - "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.3.tgz", + "integrity": "sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A==", "dev": true, "requires": { - "@babel/types": "^7.18.10", + "@babel/types": "^7.20.2", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } }, "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "dependencies": { @@ -13182,13 +13155,13 @@ "dev": true }, "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" } }, "@babel/helper-hoist-variables": { @@ -13210,27 +13183,19 @@ } }, "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - } + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" } }, "@babel/helper-plugin-utils": { @@ -13240,12 +13205,12 @@ "dev": true }, "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.20.2" } }, "@babel/helper-split-export-declaration": { @@ -13258,15 +13223,15 @@ } }, "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true }, "@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==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, "@babel/helper-validator-option": { @@ -13276,14 +13241,14 @@ "dev": true }, "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", "dev": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" } }, "@babel/highlight": { @@ -13295,20 +13260,12 @@ "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - } } }, "@babel/parser": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", - "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", "dev": true }, "@babel/template": { @@ -13323,19 +13280,19 @@ } }, "@babel/traverse": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", - "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", + "@babel/generator": "^7.20.1", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.11", - "@babel/types": "^7.18.10", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -13358,22 +13315,14 @@ } }, "@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - } } }, "@colors/colors": { @@ -14538,6 +14487,19 @@ "requires": { "find-cache-dir": "^3.3.2", "schema-utils": "^4.0.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + } } }, "babel-plugin-istanbul": { @@ -20929,28 +20891,6 @@ "jest-worker": "^26.2.1", "serialize-javascript": "^4.0.0", "terser": "^5.0.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/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" - } - } } }, "rollup-pluginutils": { @@ -22390,7 +22330,7 @@ "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=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true }, "to-object-path": { diff --git a/package.json b/package.json index d01acfab8a..f622f7e839 100644 --- a/package.json +++ b/package.json @@ -53,10 +53,10 @@ "*.css" ], "devDependencies": { - "@babel/core": "^7.18.10", + "@babel/core": "^7.20.2", "@rollup/plugin-commonjs": "^22.0.2", "@rollup/plugin-node-resolve": "^13.3.0", - "babel-loader": "^9.0.0", + "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.10.0", "camunda-bpmn-moddle": "^4.0.1", From f67787430b9d1770f9d4ba56e609f9ca6e90b4b2 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 7 Nov 2022 16:04:40 +0100 Subject: [PATCH 162/989] chore: bump rollup* --- package-lock.json | 439 ++++++++++++++++------------------------------ package.json | 8 +- 2 files changed, 156 insertions(+), 291 deletions(-) diff --git a/package-lock.json b/package-lock.json index c4eeff1b12..a6e9435b79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,8 +22,8 @@ }, "devDependencies": { "@babel/core": "^7.20.2", - "@rollup/plugin-commonjs": "^22.0.2", - "@rollup/plugin-node-resolve": "^13.3.0", + "@rollup/plugin-commonjs": "^23.0.2", + "@rollup/plugin-node-resolve": "^15.0.1", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.10.0", @@ -52,9 +52,9 @@ "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", "puppeteer": "^18.0.5", - "rollup": "^2.78.0", + "rollup": "^2.79.1", "rollup-plugin-json": "^4.0.0", - "rollup-plugin-license": "^2.8.1", + "rollup-plugin-license": "^2.9.1", "rollup-plugin-replace": "^2.2.0", "rollup-plugin-terser": "^7.0.2", "sinon": "^7.5.0", @@ -781,105 +781,93 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "22.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz", - "integrity": "sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==", + "version": "23.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.2.tgz", + "integrity": "sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==", "dev": true, "dependencies": { - "@rollup/pluginutils": "^3.1.0", + "@rollup/pluginutils": "^5.0.1", "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" + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.26.4" }, "engines": { - "node": ">= 12.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.68.0" + "rollup": "^2.68.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/@rollup/plugin-commonjs/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "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" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@rollup/plugin-commonjs/node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.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": ">=10" } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", + "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", "dev": true, "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", + "is-builtin-module": "^3.2.0", "is-module": "^1.0.0", - "resolve": "^1.19.0" + "resolve": "^1.22.1" }, "engines": { - "node": ">= 10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.42.0" + "rollup": "^2.78.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, "node_modules/@rollup/plugin-node-resolve/node_modules/builtin-modules": { @@ -909,18 +897,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@rollup/plugin-node-resolve/node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/@rollup/plugin-node-resolve/node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -939,34 +915,27 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", "dev": true, "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">= 8.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@rollup/pluginutils/node_modules/@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 - }, - "node_modules/@rollup/pluginutils/node_modules/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 - }, "node_modules/@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -1042,9 +1011,9 @@ } }, "node_modules/@types/estree": { - "version": "0.0.45", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", - "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true }, "node_modules/@types/json-schema": { @@ -1066,13 +1035,10 @@ "dev": true }, "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true }, "node_modules/@types/yauzl": { "version": "2.10.0", @@ -4069,18 +4035,6 @@ "node": ">=8" } }, - "node_modules/eslint/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/eslint/node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -7606,20 +7560,17 @@ } }, "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", "dev": true, "dependencies": { "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" } }, - "node_modules/magic-string/node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -9400,9 +9351,9 @@ "dev": true }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "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" @@ -10248,9 +10199,9 @@ } }, "node_modules/rollup": { - "version": "2.78.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz", - "integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==", + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -10273,9 +10224,9 @@ } }, "node_modules/rollup-plugin-license": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.8.1.tgz", - "integrity": "sha512-VYd9pzaNL7NN6xQp93XiiCV2UoduXgSmTcz6rl9bHPdiifT6yH3Zw/omEr73Rq8TIyN4nqJACBbKIT/2eE66wg==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.1.tgz", + "integrity": "sha512-C26f/bFXR52tzpBMllDnf5m2ETqRuyrrj3m8i3YY4imDwbXtunop+Lj1mO9mn/sZF8gKknOycN1Sm+kMGBd6RA==", "dev": true, "dependencies": { "commenting": "~1.1.0", @@ -10315,18 +10266,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rollup-plugin-license/node_modules/magic-string": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", - "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/rollup-plugin-license/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -10351,12 +10290,6 @@ "node": ">=10" } }, - "node_modules/rollup-plugin-license/node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, "node_modules/rollup-plugin-replace": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz", @@ -11226,9 +11159,9 @@ "dev": true }, "node_modules/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==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, "node_modules/spdx-compare": { @@ -13573,77 +13506,64 @@ } }, "@rollup/plugin-commonjs": { - "version": "22.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz", - "integrity": "sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==", + "version": "23.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.2.tgz", + "integrity": "sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==", "dev": true, "requires": { - "@rollup/pluginutils": "^3.1.0", + "@rollup/pluginutils": "^5.0.1", "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" + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.26.4" }, "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "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" + "balanced-match": "^1.0.0" } }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, "requires": { - "has": "^1.0.3" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" } }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "brace-expansion": "^2.0.1" } } } }, "@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", + "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", "dev": true, "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", + "is-builtin-module": "^3.2.0", "is-module": "^1.0.0", - "resolve": "^1.19.0" + "resolve": "^1.22.1" }, "dependencies": { "builtin-modules": { @@ -13661,15 +13581,6 @@ "builtin-modules": "^3.3.0" } }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -13684,28 +13595,14 @@ } }, "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", "dev": true, "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "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 - } + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" } }, "@sinonjs/commons": { @@ -13783,9 +13680,9 @@ } }, "@types/estree": { - "version": "0.0.45", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", - "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true }, "@types/json-schema": { @@ -13807,13 +13704,10 @@ "dev": true }, "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "requires": { - "@types/node": "*" - } + "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/yauzl": { "version": "2.10.0", @@ -15869,12 +15763,6 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -18774,20 +18662,12 @@ } }, "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", "dev": true, "requires": { "sourcemap-codec": "^1.4.8" - }, - "dependencies": { - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - } } }, "make-dir": { @@ -20117,9 +19997,9 @@ "dev": true }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pidtree": { @@ -20771,9 +20651,9 @@ } }, "rollup": { - "version": "2.78.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz", - "integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==", + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -20798,9 +20678,9 @@ } }, "rollup-plugin-license": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.8.1.tgz", - "integrity": "sha512-VYd9pzaNL7NN6xQp93XiiCV2UoduXgSmTcz6rl9bHPdiifT6yH3Zw/omEr73Rq8TIyN4nqJACBbKIT/2eE66wg==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.1.tgz", + "integrity": "sha512-C26f/bFXR52tzpBMllDnf5m2ETqRuyrrj3m8i3YY4imDwbXtunop+Lj1mO9mn/sZF8gKknOycN1Sm+kMGBd6RA==", "dev": true, "requires": { "commenting": "~1.1.0", @@ -20828,15 +20708,6 @@ "path-is-absolute": "^1.0.0" } }, - "magic-string": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", - "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -20851,12 +20722,6 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true } } }, @@ -21555,9 +21420,9 @@ "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==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, "spdx-compare": { diff --git a/package.json b/package.json index f622f7e839..d536e5b430 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ ], "devDependencies": { "@babel/core": "^7.20.2", - "@rollup/plugin-commonjs": "^22.0.2", - "@rollup/plugin-node-resolve": "^13.3.0", + "@rollup/plugin-commonjs": "^23.0.2", + "@rollup/plugin-node-resolve": "^15.0.1", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.10.0", @@ -84,9 +84,9 @@ "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", "puppeteer": "^18.0.5", - "rollup": "^2.78.0", + "rollup": "^2.79.1", "rollup-plugin-json": "^4.0.0", - "rollup-plugin-license": "^2.8.1", + "rollup-plugin-license": "^2.9.1", "rollup-plugin-replace": "^2.2.0", "rollup-plugin-terser": "^7.0.2", "sinon": "^7.5.0", From 9ff297f11a66fef4f396e6e90d0ef5da48be885e Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 7 Nov 2022 16:05:18 +0100 Subject: [PATCH 163/989] chore: bump test dependencies --- package-lock.json | 752 +++++++++++++++++++++++++++------------------- package.json | 6 +- 2 files changed, 444 insertions(+), 314 deletions(-) diff --git a/package-lock.json b/package-lock.json index a6e9435b79..c4fec8f649 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,16 +48,16 @@ "karma-sinon-chai": "^2.0.2", "karma-webpack": "^5.0.0", "mkdirp": "^0.5.1", - "mocha": "^9.0.0", + "mocha": "^10.1.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", - "puppeteer": "^18.0.5", + "puppeteer": "^19.2.2", "rollup": "^2.79.1", "rollup-plugin-json": "^4.0.0", "rollup-plugin-license": "^2.9.1", "rollup-plugin-replace": "^2.2.0", "rollup-plugin-terser": "^7.0.2", - "sinon": "^7.5.0", + "sinon": "^9.2.4", "sinon-chai": "^3.7.0", "webpack": "^5.74.0" } @@ -937,39 +937,38 @@ } }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.4.tgz", + "integrity": "sha512-RpmQdHVo8hCEHDVpO39zToS9jOhR6nw+/lQAzRNq9ErrGV9IeHM71XCn68svVl/euFeVW6BWX4p35gkhbOcSIQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, - "node_modules/@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/@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" + "@sinonjs/commons": "^1.7.0" } }, "node_modules/@sinonjs/samsam": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", - "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", + "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.3.0", - "array-from": "^2.1.1", - "lodash": "^4.17.15" + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" } }, "node_modules/@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==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, "node_modules/@types/component-emitter": { @@ -1034,6 +1033,12 @@ "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", "dev": true }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -1050,12 +1055,6 @@ "@types/node": "*" } }, - "node_modules/@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/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -1462,12 +1461,6 @@ "node": ">=0.10.0" } }, - "node_modules/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/array-includes": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", @@ -2257,7 +2250,7 @@ "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, "engines": { "node": "*" @@ -2658,6 +2651,22 @@ "node": ">= 0.10" } }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/cpx": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz", @@ -3018,9 +3027,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1036444", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1036444.tgz", - "integrity": "sha512-0y4f/T8H9lsESV9kKP1HDUXgHxCdniFeJh6Erq+FbdOEvp/Ydp9t8kcAAM5gOd17pMrTDlFWntoHtzzeTUWKNw==", + "version": "0.0.1056733", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1056733.tgz", + "integrity": "sha512-CmTu6SQx2g3TbZzDCAV58+LTxVdKplS7xip0g5oDXpZ+isr0rv5dDP8ToyVRywzPHkCCPKgKgScEcwz4uPWDIA==", "dev": true }, "node_modules/di": { @@ -3083,15 +3092,6 @@ "node": ">=8" } }, - "node_modules/dir-glob/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -3149,9 +3149,9 @@ } }, "node_modules/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==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "dependencies": { "once": "^1.4.0" @@ -4400,6 +4400,49 @@ "node": ">=0.10.0" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/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/extract-zip/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/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4538,7 +4581,7 @@ "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, "dependencies": { "pend": "~1.2.0" @@ -5853,15 +5896,6 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, "node_modules/hammerjs": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", @@ -7377,6 +7411,12 @@ "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/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -7404,6 +7444,12 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -7541,12 +7587,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/lolex": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", - "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==", - "dev": true - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -7809,42 +7849,39 @@ "dev": true }, "node_modules/mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", + "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", "dev": true, "dependencies": { - "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", - "debug": "4.3.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.2.0", - "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.1", + "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "bin": { "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 14.0.0" }, "funding": { "type": "opencollective", @@ -7879,6 +7916,15 @@ "node": ">=8" } }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/mocha/node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -7919,9 +7965,9 @@ } }, "node_modules/mocha/node_modules/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, "dependencies": { "ms": "2.1.2" @@ -8043,12 +8089,12 @@ } }, "node_modules/mocha/node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" @@ -8117,21 +8163,6 @@ "node": ">=8.0" } }, - "node_modules/mocha/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/mocha/node_modules/yargs-parser": { "version": "20.2.4", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", @@ -8182,9 +8213,9 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -8270,27 +8301,18 @@ "dev": true }, "node_modules/nise": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz", - "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", + "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", "dev": true, "dependencies": { - "@sinonjs/formatio": "^3.2.1", + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^6.0.0", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", - "lolex": "^5.0.1", "path-to-regexp": "^1.7.0" } }, - "node_modules/nise/node_modules/lolex": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", - "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -9258,6 +9280,24 @@ "node": ">=0.10.0" } }, + "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/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -9326,9 +9366,18 @@ "node_modules/path-to-regexp/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -9341,7 +9390,7 @@ "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, "node_modules/picocolors": { @@ -9487,29 +9536,45 @@ } }, "node_modules/puppeteer": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-18.0.5.tgz", - "integrity": "sha512-s4erjxU0VtKojPvF+KvLKG6OHUPw7gO2YV1dtOsoryyCbhrs444fXb4QZqGWuTv3V/rgSCUzeixxu34g0ZkSMA==", + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.2.tgz", + "integrity": "sha512-m1T5Mog5qu5+dMBptWYTn6pXRdnFbydbVUCthqwbfd8/kOiMlzZBR9ywjX79LpvI1Sj+/z8+FKeIsjnMul8ZYA==", "dev": true, "hasInstallScript": true, + "dependencies": { + "cosmiconfig": "7.0.1", + "devtools-protocol": "0.0.1056733", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "puppeteer-core": "19.2.2" + }, + "engines": { + "node": ">=14.1.0" + } + }, + "node_modules/puppeteer-core": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.2.tgz", + "integrity": "sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==", + "dev": true, "dependencies": { "cross-fetch": "3.1.5", "debug": "4.3.4", - "devtools-protocol": "0.0.1036444", + "devtools-protocol": "0.0.1056733", "extract-zip": "2.0.1", "https-proxy-agent": "5.0.1", - "progress": "2.0.3", "proxy-from-env": "1.1.0", "rimraf": "3.0.2", "tar-fs": "2.1.1", "unbzip2-stream": "1.4.3", - "ws": "8.8.1" + "ws": "8.10.0" }, "engines": { "node": ">=14.1.0" } }, - "node_modules/puppeteer/node_modules/debug": { + "node_modules/puppeteer-core/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", @@ -9526,27 +9591,7 @@ } } }, - "node_modules/puppeteer/node_modules/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, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/puppeteer/node_modules/ms": { + "node_modules/puppeteer-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==", @@ -10860,18 +10905,21 @@ "dev": true }, "node_modules/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==", + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", + "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", "dev": true, "dependencies": { - "@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" + "@sinonjs/commons": "^1.8.1", + "@sinonjs/fake-timers": "^6.0.1", + "@sinonjs/samsam": "^5.3.1", + "diff": "^4.0.2", + "nise": "^4.0.4", + "supports-color": "^7.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" } }, "node_modules/sinon-chai": { @@ -10885,14 +10933,35 @@ } }, "node_modules/sinon/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { "node": ">=0.3.1" } }, + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sinon/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/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -12151,7 +12220,7 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/tiny-svg": { @@ -12804,9 +12873,9 @@ } }, "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "dev": true }, "node_modules/wrap-ansi": { @@ -12866,9 +12935,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", + "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -12895,6 +12964,15 @@ "node": ">=10" } }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -12940,7 +13018,7 @@ "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", @@ -13606,39 +13684,38 @@ } }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.4.tgz", + "integrity": "sha512-RpmQdHVo8hCEHDVpO39zToS9jOhR6nw+/lQAzRNq9ErrGV9IeHM71XCn68svVl/euFeVW6BWX4p35gkhbOcSIQ==", "dev": true, "requires": { "type-detect": "4.0.8" } }, - "@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==", + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", "dev": true, "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" + "@sinonjs/commons": "^1.7.0" } }, "@sinonjs/samsam": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", - "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", + "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.3.0", - "array-from": "^2.1.1", - "lodash": "^4.17.15" + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" } }, "@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==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, "@types/component-emitter": { @@ -13703,6 +13780,12 @@ "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", "dev": true }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, "@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -13719,12 +13802,6 @@ "@types/node": "*" } }, - "@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 - }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -14068,12 +14145,6 @@ "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", "dev": true }, - "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 - }, "array-includes": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", @@ -14633,7 +14704,7 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true }, "buffer-from": { @@ -14957,6 +15028,19 @@ "vary": "^1" } }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, "cpx": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz", @@ -15229,9 +15313,9 @@ "dev": true }, "devtools-protocol": { - "version": "0.0.1036444", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1036444.tgz", - "integrity": "sha512-0y4f/T8H9lsESV9kKP1HDUXgHxCdniFeJh6Erq+FbdOEvp/Ydp9t8kcAAM5gOd17pMrTDlFWntoHtzzeTUWKNw==", + "version": "0.0.1056733", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1056733.tgz", + "integrity": "sha512-CmTu6SQx2g3TbZzDCAV58+LTxVdKplS7xip0g5oDXpZ+isr0rv5dDP8ToyVRywzPHkCCPKgKgScEcwz4uPWDIA==", "dev": true }, "di": { @@ -15283,14 +15367,6 @@ "dev": true, "requires": { "path-type": "^4.0.0" - }, - "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 - } } }, "doctrine": { @@ -15344,9 +15420,9 @@ "dev": true }, "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==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { "once": "^1.4.0" @@ -16280,6 +16356,35 @@ "is-extglob": "^1.0.0" } }, + "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" + }, + "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 + } + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -16393,7 +16498,7 @@ "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, "requires": { "pend": "~1.2.0" @@ -17385,12 +17490,6 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, "hammerjs": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", @@ -18522,6 +18621,12 @@ "type-check": "~0.4.0" } }, + "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 + }, "loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -18543,6 +18648,12 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -18646,12 +18757,6 @@ } } }, - "lolex": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", - "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==", - "dev": true - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -18862,32 +18967,29 @@ "dev": true }, "mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", + "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", "dev": true, "requires": { - "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", - "debug": "4.3.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.2.0", - "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.1", + "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" @@ -18909,6 +19011,15 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -18935,9 +19046,9 @@ } }, "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" @@ -19019,12 +19130,12 @@ "dev": true }, "minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" } }, "ms": { @@ -19075,15 +19186,6 @@ "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", @@ -19136,9 +19238,9 @@ "optional": true }, "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, "nanomatch": { @@ -19205,27 +19307,16 @@ "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==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", + "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", "dev": true, "requires": { - "@sinonjs/formatio": "^3.2.1", + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^6.0.0", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", - "lolex": "^5.0.1", "path-to-regexp": "^1.7.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" - } - } } }, "node-fetch": { @@ -19920,6 +20011,18 @@ "is-glob": "^2.0.0" } }, + "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, + "requires": { + "@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" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -19973,11 +20076,17 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true } } }, + "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 + }, "pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -19987,7 +20096,7 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, "picocolors": { @@ -20099,22 +20208,35 @@ "dev": true }, "puppeteer": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-18.0.5.tgz", - "integrity": "sha512-s4erjxU0VtKojPvF+KvLKG6OHUPw7gO2YV1dtOsoryyCbhrs444fXb4QZqGWuTv3V/rgSCUzeixxu34g0ZkSMA==", + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.2.tgz", + "integrity": "sha512-m1T5Mog5qu5+dMBptWYTn6pXRdnFbydbVUCthqwbfd8/kOiMlzZBR9ywjX79LpvI1Sj+/z8+FKeIsjnMul8ZYA==", + "dev": true, + "requires": { + "cosmiconfig": "7.0.1", + "devtools-protocol": "0.0.1056733", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "puppeteer-core": "19.2.2" + } + }, + "puppeteer-core": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.2.tgz", + "integrity": "sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==", "dev": true, "requires": { "cross-fetch": "3.1.5", "debug": "4.3.4", - "devtools-protocol": "0.0.1036444", + "devtools-protocol": "0.0.1056733", "extract-zip": "2.0.1", "https-proxy-agent": "5.0.1", - "progress": "2.0.3", "proxy-from-env": "1.1.0", "rimraf": "3.0.2", "tar-fs": "2.1.1", "unbzip2-stream": "1.4.3", - "ws": "8.8.1" + "ws": "8.10.0" }, "dependencies": { "debug": { @@ -20126,18 +20248,6 @@ "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" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -21180,25 +21290,39 @@ "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==", + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", + "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", "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" + "@sinonjs/commons": "^1.8.1", + "@sinonjs/fake-timers": "^6.0.1", + "@sinonjs/samsam": "^5.3.1", + "diff": "^4.0.2", + "nise": "^4.0.4", + "supports-color": "^7.1.0" }, "dependencies": { "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "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 + }, + "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" + } } } }, @@ -22175,7 +22299,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "tiny-svg": { @@ -22669,9 +22793,9 @@ "dev": true }, "workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "dev": true }, "wrap-ansi": { @@ -22718,9 +22842,9 @@ "dev": true }, "ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", + "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", "dev": true, "requires": {} }, @@ -22730,6 +22854,12 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -22766,7 +22896,7 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "requires": { "buffer-crc32": "~0.2.3", diff --git a/package.json b/package.json index d536e5b430..6ef993987d 100644 --- a/package.json +++ b/package.json @@ -80,16 +80,16 @@ "karma-sinon-chai": "^2.0.2", "karma-webpack": "^5.0.0", "mkdirp": "^0.5.1", - "mocha": "^9.0.0", + "mocha": "^10.1.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", - "puppeteer": "^18.0.5", + "puppeteer": "^19.2.2", "rollup": "^2.79.1", "rollup-plugin-json": "^4.0.0", "rollup-plugin-license": "^2.9.1", "rollup-plugin-replace": "^2.2.0", "rollup-plugin-terser": "^7.0.2", - "sinon": "^7.5.0", + "sinon": "^9.2.4", "sinon-chai": "^3.7.0", "webpack": "^5.74.0" }, From 191e175a5935e622685eaaa7a4bf902ae863ae14 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 10 Nov 2022 14:17:01 +0100 Subject: [PATCH 164/989] chore: clean package-lock --- package-lock.json | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index c4fec8f649..9c3773cf5a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4663,23 +4663,6 @@ "node": ">= 0.6" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, "node_modules/find-index": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", @@ -16564,17 +16547,6 @@ } } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, "find-index": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", From c6afdd7821d5ad75029b84ae014e5afe0ce716a8 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 10 Nov 2022 23:27:49 +0100 Subject: [PATCH 165/989] chore: move to @rollup* bundling plug-ins --- package-lock.json | 3347 ++++++++++++++++++--------------------------- package.json | 6 +- rollup.config.js | 7 +- 3 files changed, 1309 insertions(+), 2051 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c3773cf5a..e46d27d050 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,10 @@ "devDependencies": { "@babel/core": "^7.20.2", "@rollup/plugin-commonjs": "^23.0.2", + "@rollup/plugin-json": "^5.0.1", "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-replace": "^5.0.1", + "@rollup/plugin-terser": "^0.1.0", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.10.0", @@ -53,10 +56,7 @@ "npm-run-all": "^4.1.2", "puppeteer": "^19.2.2", "rollup": "^2.79.1", - "rollup-plugin-json": "^4.0.0", "rollup-plugin-license": "^2.9.1", - "rollup-plugin-replace": "^2.2.0", - "rollup-plugin-terser": "^7.0.2", "sinon": "^9.2.4", "sinon-chai": "^3.7.0", "webpack": "^5.74.0" @@ -845,6 +845,26 @@ "node": ">=10" } }, + "node_modules/@rollup/plugin-json": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-5.0.1.tgz", + "integrity": "sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/plugin-node-resolve": { "version": "15.0.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", @@ -914,6 +934,47 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/@rollup/plugin-replace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.1.tgz", + "integrity": "sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.26.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.1.0.tgz", + "integrity": "sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==", + "dev": true, + "dependencies": { + "terser": "^5.15.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.x || ^3.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/pluginutils": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", @@ -6853,41 +6914,6 @@ "node": ">=8" } }, - "node_modules/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==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/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/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -10241,16 +10267,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/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==", - "deprecated": "This module has been deprecated and is no longer maintained. Please use @rollup/plugin-json.", - "dev": true, - "dependencies": { - "rollup-pluginutils": "^2.5.0" - } - }, "node_modules/rollup-plugin-license": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.1.tgz", @@ -10318,91 +10334,113 @@ "node": ">=10" } }, - "node_modules/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==", - "deprecated": "This module has moved and is now available at @rollup/plugin-replace. Please update your dependencies. This version is no longer maintained.", + "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, - "dependencies": { - "magic-string": "^0.25.2", - "rollup-pluginutils": "^2.6.0" + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/rollup-plugin-replace/node_modules/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==", + "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": { - "sourcemap-codec": "^1.4.4" + "queue-microtask": "^1.2.2" } }, - "node_modules/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, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } + "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/rollup-pluginutils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.6.0.tgz", - "integrity": "sha512-aGQwspEF8oPKvg37u3p7h0cYNwmJR1sCBMZGZ5b9qy8HGtETknqjzcxrDRrcAnJNXN18lBH4Q9vZYth/p4n8jQ==", + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "dependencies": { - "estree-walker": "^0.6.0", - "micromatch": "^3.1.10" + "ret": "~0.1.10" } }, - "node_modules/rollup-pluginutils/node_modules/arr-diff": { + "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 + }, + "node_modules/saxen": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/saxen/-/saxen-8.1.2.tgz", + "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" + }, + "node_modules/schema-utils": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "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", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/rollup-pluginutils/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "node_modules/semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "bin": { + "semver": "bin/semver" } }, - "node_modules/rollup-pluginutils/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "dependencies": { - "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" + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/braces/node_modules/extend-shallow": { + "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", @@ -10414,196 +10452,172 @@ "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.0.tgz", - "integrity": "sha512-peq1RfVAVzr3PU/jL31RaOjUKLoZJpObQWJJ+LgfcxDUifyLZ1RjPQZTl0pzj2uJ45b7A7XpyppXvxdEqzo4rw==", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "node_modules/rollup-pluginutils/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "shebang-regex": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/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, - "dependencies": { - "is-descriptor": "^0.1.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "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.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/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 + }, + "node_modules/sinon": { + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", + "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" + "@sinonjs/commons": "^1.8.1", + "@sinonjs/fake-timers": "^6.0.1", + "@sinonjs/samsam": "^5.3.1", + "diff": "^4.0.2", + "nise": "^4.0.4", + "supports-color": "^7.1.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" } }, - "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/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, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "chai": "^4.0.0", + "sinon": ">=4.0.0" } }, - "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/sinon/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.3.1" } }, - "node_modules/rollup-pluginutils/node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/rollup-pluginutils/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/sinon/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": { - "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" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/rollup-pluginutils/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/rollup-pluginutils/node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "is-descriptor": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/is-accessor-descriptor": { + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", @@ -10615,7 +10629,7 @@ "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/is-data-descriptor": { + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", @@ -10627,7 +10641,7 @@ "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/is-descriptor": { + "node_modules/snapdragon-node/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", @@ -10641,826 +10655,710 @@ "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "node_modules/snapdragon-node/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/snapdragon-node/node_modules/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, - "dependencies": { - "is-buffer": "^1.1.5" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/isobject": { + "node_modules/snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/snapdragon/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/rollup-pluginutils/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.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==", + "node_modules/socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", "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" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "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==", + "node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", "dev": true }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "node_modules/socket.io-parser": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz", + "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==", "dev": true, "dependencies": { - "ret": "~0.1.10" + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "node_modules/saxen": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/saxen/-/saxen-8.1.2.tgz", - "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" - }, - "node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "node_modules/socket.io-parser/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": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">=6.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true, - "bin": { - "semver": "bin/semver" - } + "node_modules/socket.io-parser/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/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "node_modules/socket.io/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": { - "randombytes": "^2.1.0" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "node_modules/socket.io/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/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/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==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "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" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "node_modules/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=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true }, - "node_modules/shebang-regex": { + "node_modules/spdx-compare": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, - "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.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "node_modules/spdx-correct": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "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/sinon": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", - "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", + "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": { - "@sinonjs/commons": "^1.8.1", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/samsam": "^5.3.1", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/sinon-chai": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz", - "integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==", + "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, - "peerDependencies": { - "chai": "^4.0.0", - "sinon": ">=4.0.0" + "dependencies": { + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/sinon/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "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, - "engines": { - "node": ">=0.3.1" + "dependencies": { + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, - "node_modules/sinon/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==", + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/sinon/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/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/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/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "node_modules/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, "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "object-copy": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "node_modules/static-extend/node_modules/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, "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "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, - "dependencies": { - "is-descriptor": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "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": { - "kind-of": "^6.0.0" + "date-format": "^4.0.13", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0" } }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "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": { - "kind-of": "^6.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "node_modules/streamroller/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": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6 <7 || >=8" } }, - "node_modules/snapdragon-node/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "node_modules/streamroller/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/snapdragon-node/node_modules/kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "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/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, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "dependencies": { - "kind-of": "^3.2.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/string-width/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 + }, + "node_modules/string-width/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, - "dependencies": { - "is-descriptor": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/socket.io": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", - "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "node_modules/string.prototype.matchall/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.2.0", - "socket.io-adapter": "~2.4.0", - "socket.io-parser": "~4.0.4" + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" }, "engines": { - "node": ">=10.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/socket.io-adapter": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", - "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", - "dev": true - }, - "node_modules/socket.io-parser": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz", - "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==", + "node_modules/string.prototype.matchall/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": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=10.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/socket.io-parser/node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/string.prototype.matchall/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, - "dependencies": { - "ms": "2.1.2" - }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/socket.io-parser/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/string.prototype.matchall/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/string.prototype.matchall/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": { - "ms": "2.1.2" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/socket.io/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/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/string.prototype.matchall/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.10.0" + "node": ">= 0.4" } }, - "node_modules/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==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "node_modules/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=", "dev": true, "dependencies": { - "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" + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/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=", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "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==", + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, "dependencies": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "node_modules/string.prototype.trimend/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/string.prototype.trimend/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/string.prototype.trimend/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": { - "spdx-expression-parse": "^3.0.0" + "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/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==", + "node_modules/string.prototype.trimend/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, - "dependencies": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "node_modules/string.prototype.trimend/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, "engines": { - "node": ">=0.10.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/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, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "node": ">= 0.4" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/string.prototype.trimend/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": { - "is-descriptor": "^0.1.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "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, - "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" + "node": ">= 0.4" }, - "engines": { - "node": ">=8.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/string.prototype.trimend/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, - "dependencies": { - "ms": "2.1.2" - }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.4" } }, - "node_modules/streamroller/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==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/streamroller/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/streamroller/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/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/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" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "node_modules/string.prototype.trimstart/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/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 - }, - "node_modules/string-width/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/string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.matchall/node_modules/es-abstract": { + "node_modules/string.prototype.trimstart/node_modules/es-abstract": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", @@ -11497,7 +11395,7 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.matchall/node_modules/es-to-primitive": { + "node_modules/string.prototype.trimstart/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==", @@ -11514,7 +11412,7 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.matchall/node_modules/has-symbols": { + "node_modules/string.prototype.trimstart/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==", @@ -11526,7 +11424,7 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.matchall/node_modules/is-callable": { + "node_modules/string.prototype.trimstart/node_modules/is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", @@ -11538,7 +11436,7 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.matchall/node_modules/is-regex": { + "node_modules/string.prototype.trimstart/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==", @@ -11554,7 +11452,7 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.matchall/node_modules/object-keys": { + "node_modules/string.prototype.trimstart/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==", @@ -11563,108 +11461,79 @@ "node": ">= 0.4" } }, - "node_modules/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=", + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" + "ansi-regex": "^5.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/string.prototype.trimend/node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/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==", "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=6" + } + }, + "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/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string.prototype.trimend/node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "minimist": "^1.1.0" } }, - "node_modules/string.prototype.trimend/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==", + "node_modules/subarg/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/string.prototype.trimend/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==", + "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" @@ -11673,398 +11542,147 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimend/node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/string.prototype.trimend/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==", + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" } }, - "node_modules/string.prototype.trimend/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==", + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "node_modules/tar-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": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 6" } }, - "node_modules/string.prototype.trimstart/node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", "dev": true, "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" }, - "engines": { - "node": ">= 0.4" + "bin": { + "terser": "bin/terser" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/string.prototype.trimstart/node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "node_modules/terser-webpack-plugin": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz", + "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.13.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "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/string.prototype.trimstart/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==", + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "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": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/string.prototype.trimstart/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==", + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "ajv": "^6.9.1" } }, - "node_modules/string.prototype.trimstart/node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/string.prototype.trimstart/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/string.prototype.trimstart/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/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "dev": true, - "dependencies": { - "minimist": "^1.1.0" - } - }, - "node_modules/subarg/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-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/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz", - "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.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-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "dependencies": { "@types/node": "*", @@ -12117,18 +11735,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/terser/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/terser/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -13613,6 +13219,15 @@ } } }, + "@rollup/plugin-json": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-5.0.1.tgz", + "integrity": "sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1" + } + }, "@rollup/plugin-node-resolve": { "version": "15.0.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", @@ -13655,13 +13270,32 @@ } } }, - "@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "@rollup/plugin-replace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.1.tgz", + "integrity": "sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==", "dev": true, "requires": { - "@types/estree": "^1.0.0", + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.26.4" + } + }, + "@rollup/plugin-terser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.1.0.tgz", + "integrity": "sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==", + "dev": true, + "requires": { + "terser": "^5.15.1" + } + }, + "@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^2.3.1" } @@ -18174,34 +17808,6 @@ "istanbul-lib-report": "^3.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==", - "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" - } - } - } - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -20065,789 +19671,269 @@ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "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 - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "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-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 - }, - "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": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "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 - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "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": "19.2.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.2.tgz", - "integrity": "sha512-m1T5Mog5qu5+dMBptWYTn6pXRdnFbydbVUCthqwbfd8/kOiMlzZBR9ywjX79LpvI1Sj+/z8+FKeIsjnMul8ZYA==", - "dev": true, - "requires": { - "cosmiconfig": "7.0.1", - "devtools-protocol": "0.0.1056733", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "puppeteer-core": "19.2.2" - } - }, - "puppeteer-core": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.2.tgz", - "integrity": "sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==", - "dev": true, - "requires": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.1056733", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.10.0" - }, - "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 - } - } - }, - "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 - }, - "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 - }, - "rambda": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.2.1.tgz", - "integrity": "sha512-Wswj8ZvzdI3VhaGPkZAxaCTwuMmGtgWt7Zxsgyo4P+iTmVnkojvyWaOep5q3ZjMIecW0wtQa66GWxaKkZ24RAA==", - "dev": true - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "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 - } - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.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.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.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 - }, - "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==", - "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" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "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" - } - } - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "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 - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, - "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==", + "pidtree": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", + "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", "dev": true }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "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": { - "path-parse": "^1.0.5" + "find-up": "^4.0.0" + }, + "dependencies": { + "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" + } + } } }, - "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==", + "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 }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "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 }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "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 }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "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": { - "glob": "^7.1.3" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "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 + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "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 - } + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "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==", + "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": "19.2.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.2.tgz", + "integrity": "sha512-m1T5Mog5qu5+dMBptWYTn6pXRdnFbydbVUCthqwbfd8/kOiMlzZBR9ywjX79LpvI1Sj+/z8+FKeIsjnMul8ZYA==", "dev": true, "requires": { - "rollup-pluginutils": "^2.5.0" + "cosmiconfig": "7.0.1", + "devtools-protocol": "0.0.1056733", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "puppeteer-core": "19.2.2" } }, - "rollup-plugin-license": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.1.tgz", - "integrity": "sha512-C26f/bFXR52tzpBMllDnf5m2ETqRuyrrj3m8i3YY4imDwbXtunop+Lj1mO9mn/sZF8gKknOycN1Sm+kMGBd6RA==", + "puppeteer-core": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.2.tgz", + "integrity": "sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==", "dev": true, "requires": { - "commenting": "~1.1.0", - "glob": "~7.2.0", - "lodash": "~4.17.21", - "magic-string": "~0.26.2", - "mkdirp": "~1.0.4", - "moment": "~2.29.3", - "package-name-regex": "~2.0.6", - "spdx-expression-validate": "~2.0.0", - "spdx-satisfies": "~5.0.1" + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1056733", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.10.0" }, "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "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" + "ms": "2.1.2" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } + "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 + } + } + }, + "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 + }, + "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 + }, + "rambda": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.2.1.tgz", + "integrity": "sha512-Wswj8ZvzdI3VhaGPkZAxaCTwuMmGtgWt7Zxsgyo4P+iTmVnkojvyWaOep5q3ZjMIecW0wtQa66GWxaKkZ24RAA==", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "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 }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "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 } } }, - "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==", + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.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.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "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" - } - } + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" } }, - "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==", + "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 + }, + "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==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "rollup-pluginutils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.6.0.tgz", - "integrity": "sha512-aGQwspEF8oPKvg37u3p7h0cYNwmJR1sCBMZGZ5b9qy8HGtETknqjzcxrDRrcAnJNXN18lBH4Q9vZYth/p4n8jQ==", + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { - "estree-walker": "^0.6.0", - "micromatch": "^3.1.10" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { @@ -20891,12 +19977,6 @@ } } }, - "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", @@ -21132,6 +20212,198 @@ } } }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "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 + }, + "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 + }, + "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 + }, + "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 + }, + "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 + }, + "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 + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "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 + }, + "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 + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "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": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "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 + } + } + }, + "rollup-plugin-license": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.1.tgz", + "integrity": "sha512-C26f/bFXR52tzpBMllDnf5m2ETqRuyrrj3m8i3YY4imDwbXtunop+Lj1mO9mn/sZF8gKknOycN1Sm+kMGBd6RA==", + "dev": true, + "requires": { + "commenting": "~1.1.0", + "glob": "~7.2.0", + "lodash": "~4.17.21", + "magic-string": "~0.26.2", + "mkdirp": "~1.0.4", + "moment": "~2.29.3", + "package-name-regex": "~2.0.6", + "spdx-expression-validate": "~2.0.0", + "spdx-satisfies": "~5.0.1" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -21185,15 +20457,6 @@ "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "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==", - "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", @@ -22109,9 +21372,9 @@ } }, "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -22120,12 +21383,6 @@ "source-map-support": "~0.5.20" }, "dependencies": { - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", diff --git a/package.json b/package.json index 6ef993987d..bc43f6d03c 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,10 @@ "devDependencies": { "@babel/core": "^7.20.2", "@rollup/plugin-commonjs": "^23.0.2", + "@rollup/plugin-json": "^5.0.1", "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-replace": "^5.0.1", + "@rollup/plugin-terser": "^0.1.0", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.10.0", @@ -85,10 +88,7 @@ "npm-run-all": "^4.1.2", "puppeteer": "^19.2.2", "rollup": "^2.79.1", - "rollup-plugin-json": "^4.0.0", "rollup-plugin-license": "^2.9.1", - "rollup-plugin-replace": "^2.2.0", - "rollup-plugin-terser": "^7.0.2", "sinon": "^9.2.4", "sinon-chai": "^3.7.0", "webpack": "^5.74.0" diff --git a/rollup.config.js b/rollup.config.js index cdc5f7ed85..7a0ba30cc1 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,11 +1,11 @@ /* eslint-env node */ -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 @@ -97,6 +97,7 @@ function banner(bundleName, minified) { function pgl(plugins = [], env = 'production') { return [ replace({ + preventAssignment: true, 'process.env.NODE_ENV': JSON.stringify(env) }), nodeResolve(), From 9a07db0427cb18c8f4e1ef475c4498572255f91a Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 11 Nov 2022 11:23:48 +0100 Subject: [PATCH 166/989] test: retry flakey tests --- .../spec/features/replace-preview/BpmnReplacePreviewSpec.js | 5 +++++ test/spec/features/space-tool/BpmnSpaceToolSpec.js | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js b/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js index 1391ef1407..44643ced16 100644 --- a/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js +++ b/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js @@ -25,6 +25,11 @@ import { describe('features/replace-preview', function() { + // adopt conservative retry strategy + // in an attempt to improve the stability + // of our test suite + this.retries(2); + var diagramXML = require('./BpmnReplacePreview.bpmn'); var startEvent1, diff --git a/test/spec/features/space-tool/BpmnSpaceToolSpec.js b/test/spec/features/space-tool/BpmnSpaceToolSpec.js index babf613aa3..425e39d8d3 100644 --- a/test/spec/features/space-tool/BpmnSpaceToolSpec.js +++ b/test/spec/features/space-tool/BpmnSpaceToolSpec.js @@ -23,6 +23,12 @@ 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, From f58c03537f34181132e11d54caa4d1b47c699091 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 11 Nov 2022 12:47:41 +0100 Subject: [PATCH 167/989] chore(CHANGELOG): update to v10.3.0 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d921fe10ac..e7f7de8008 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 10.3.0 + +* `FEAT`: add BPMN specific space tool ([#1344](https://github.com/bpmn-io/bpmn-js/pull/1344)) +* `FIX`: do not resize `bpmn:TextAnnotation` when using space tool ([#1344](https://github.com/bpmn-io/bpmn-js/pull/1344)) +* `FIX`: correct attachers left hanging when using space tool ([#1344](https://github.com/bpmn-io/bpmn-js/pull/1344)) +* `FIX`: stick labels to label targets when using space tool ([#1344](https://github.com/bpmn-io/bpmn-js/pull/1344), [#1302](https://github.com/bpmn-io/bpmn-js/issues/1302)) +* `DEPS`: update to `diagram-js@10` + ## 10.2.1 * `FIX`: correct preserving of outgoing connections on event-based gateway morph ([#1738](https://github.com/bpmn-io/bpmn-js/issues/1738)) From 965b0b32148d63e650bb7169e1952a2d7abfaa0f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 11 Nov 2022 12:51:14 +0100 Subject: [PATCH 168/989] 10.3.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e46d27d050..bf91784d6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "10.2.1", + "version": "10.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "10.2.1", + "version": "10.3.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index bc43f6d03c..1faf1d52ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "10.2.1", + "version": "10.3.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From e3561e4919df1b1420083ab89d44d7488b092ce5 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 11 Nov 2022 12:55:41 +0100 Subject: [PATCH 169/989] chore: `npm audit fix` --- package-lock.json | 503 +++++----------------------------------------- 1 file changed, 48 insertions(+), 455 deletions(-) diff --git a/package-lock.json b/package-lock.json index bf91784d6a..af1bd72044 100644 --- a/package-lock.json +++ b/package-lock.json @@ -538,18 +538,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@eslint/eslintrc/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1287,27 +1275,6 @@ "node": ">= 0.6" } }, - "node_modules/accepts/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/accepts/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/acorn": { "version": "8.8.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", @@ -1447,9 +1414,9 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "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" @@ -2100,9 +2067,9 @@ } }, "node_modules/base/node_modules/kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2239,7 +2206,7 @@ "node_modules/braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", "dev": true, "dependencies": { "expand-range": "^1.8.1", @@ -2484,7 +2451,7 @@ "node_modules/chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", "dev": true, "dependencies": { @@ -2731,7 +2698,7 @@ "node_modules/cpx": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz", - "integrity": "sha1-GFvgGFEdhycN7czCkxceN2VauI8=", + "integrity": "sha512-jHTjZhsbg9xWgsP2vuNW2jnnzBX+p4T+vNI9Lbjzs1n4KhOfa22bQppiFYLsWQKd8TzmL5aSP/Me3yfsCwXbDA==", "dev": true, "dependencies": { "babel-runtime": "^6.9.2", @@ -3598,18 +3565,6 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-plugin-import/node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -3692,18 +3647,6 @@ "node": ">=4.0" } }, - "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.4", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", @@ -3795,15 +3738,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4069,18 +4003,6 @@ "node": ">=8.6" } }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4185,18 +4107,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree/node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -5853,7 +5763,7 @@ "node_modules/glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", "dev": true, "dependencies": { "glob-parent": "^2.0.0", @@ -5866,7 +5776,7 @@ "node_modules/glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", "dev": true, "dependencies": { "is-glob": "^2.0.0" @@ -5919,15 +5829,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", @@ -6825,15 +6726,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-report/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-report/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6877,15 +6769,6 @@ } } }, - "node_modules/istanbul-lib-source-maps/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-source-maps/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -7051,40 +6934,6 @@ "node": ">=10.0.0" } }, - "node_modules/karma-coverage/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/karma-coverage/node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "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/karma-coverage/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/karma-debug-launcher": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/karma-debug-launcher/-/karma-debug-launcher-0.0.5.tgz", @@ -7293,18 +7142,6 @@ "node": ">= 6" } }, - "node_modules/karma/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/karma/node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -7707,7 +7544,7 @@ "node_modules/micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", "dev": true, "dependencies": { "arr-diff": "^2.0.0", @@ -7791,9 +7628,9 @@ "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -7803,10 +7640,13 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "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/mixin-deep": { "version": "1.3.2", @@ -7851,12 +7691,6 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, - "node_modules/mkdirp/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, "node_modules/mocha": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", @@ -9277,7 +9111,7 @@ "node_modules/parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", "dev": true, "dependencies": { "glob-base": "^0.3.0", @@ -10310,18 +10144,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rollup-plugin-license/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/rollup-plugin-license/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -10665,9 +10487,9 @@ } }, "node_modules/snapdragon-node/node_modules/kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -11512,12 +11334,6 @@ "minimist": "^1.1.0" } }, - "node_modules/subarg/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -11788,18 +11604,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/test-exclude/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -11929,12 +11733,6 @@ "json5": "lib/cli.js" } }, - "node_modules/tsconfig-paths/node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -11981,27 +11779,6 @@ "node": ">= 0.6" } }, - "node_modules/type-is/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/type-is/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/ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", @@ -12978,15 +12755,6 @@ "type-fest": "^0.20.2" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -13585,23 +13353,6 @@ "requires": { "mime-types": "~2.1.34", "negotiator": "0.6.3" - }, - "dependencies": { - "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 - }, - "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": { - "mime-db": "1.52.0" - } - } } }, "acorn": { @@ -13705,9 +13456,9 @@ "dev": true }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "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": { @@ -14173,9 +13924,9 @@ "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==", + "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 } } @@ -14282,7 +14033,7 @@ "braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", "dev": true, "requires": { "expand-range": "^1.8.1", @@ -14452,7 +14203,7 @@ "chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", "dev": true, "requires": { "anymatch": "^1.3.0", @@ -14661,7 +14412,7 @@ "cpx": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz", - "integrity": "sha1-GFvgGFEdhycN7czCkxceN2VauI8=", + "integrity": "sha512-jHTjZhsbg9xWgsP2vuNW2jnnzBX+p4T+vNI9Lbjzs1n4KhOfa22bQppiFYLsWQKd8TzmL5aSP/Me3yfsCwXbDA==", "dev": true, "requires": { "babel-runtime": "^6.9.2", @@ -15242,12 +14993,6 @@ "uri-js": "^4.2.2" } }, - "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", @@ -15435,15 +15180,6 @@ "picomatch": "^2.3.1" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -15628,15 +15364,6 @@ "is-extglob": "^2.1.1" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -15697,15 +15424,6 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "resolve": { "version": "2.0.0-next.4", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", @@ -15767,14 +15485,6 @@ "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - } } }, "esprima": { @@ -17025,7 +16735,7 @@ "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", "dev": true, "requires": { "glob-parent": "^2.0.0", @@ -17035,7 +16745,7 @@ "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", "dev": true, "requires": { "is-glob": "^2.0.0" @@ -17074,14 +16784,6 @@ "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 - } } }, "graceful-fs": { @@ -17741,12 +17443,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "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 - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -17778,12 +17474,6 @@ "ms": "2.1.2" } }, - "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 - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -17970,17 +17660,6 @@ "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } } }, "glob-parent": { @@ -18081,33 +17760,6 @@ "istanbul-lib-source-maps": "^4.0.1", "istanbul-reports": "^3.0.5", "minimatch": "^3.0.4" - }, - "dependencies": { - "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 - }, - "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "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" - } - }, - "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": { @@ -18418,7 +18070,7 @@ "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", "dev": true, "requires": { "arr-diff": "^2.0.0", @@ -18486,18 +18138,18 @@ } }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, "mixin-deep": { @@ -18528,14 +18180,6 @@ "dev": true, "requires": { "minimist": "^1.2.5" - }, - "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 - } } }, "mkdirp-classic": { @@ -19580,7 +19224,7 @@ "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", "dev": true, "requires": { "glob-base": "^0.3.0", @@ -20387,15 +20031,6 @@ "path-is-absolute": "^1.0.0" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -20666,9 +20301,9 @@ "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==", + "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 } } @@ -21302,14 +20937,6 @@ "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": { @@ -21504,17 +21131,6 @@ "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } } } } @@ -21625,12 +21241,6 @@ "requires": { "minimist": "^1.2.0" } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true } } }, @@ -21663,23 +21273,6 @@ "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" - }, - "dependencies": { - "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 - }, - "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": { - "mime-db": "1.52.0" - } - } } }, "ua-parser-js": { From 208db7dfa3129bf4725213e77c21d89ff68685da Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Nov 2022 01:18:53 +0000 Subject: [PATCH 170/989] chore: update dependency sinon to v14 --- package-lock.json | 163 +++++++++++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 104 insertions(+), 61 deletions(-) diff --git a/package-lock.json b/package-lock.json index af1bd72044..086ee32a1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "puppeteer": "^19.2.2", "rollup": "^2.79.1", "rollup-plugin-license": "^2.9.1", - "sinon": "^9.2.4", + "sinon": "^14.0.0", "sinon-chai": "^3.7.0", "webpack": "^5.74.0" } @@ -986,30 +986,39 @@ } }, "node_modules/@sinonjs/commons": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.4.tgz", - "integrity": "sha512-RpmQdHVo8hCEHDVpO39zToS9jOhR6nw+/lQAzRNq9ErrGV9IeHM71XCn68svVl/euFeVW6BWX4p35gkhbOcSIQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, "node_modules/@sinonjs/samsam": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", - "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", + "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.6.0", + "@sinonjs/commons": "^2.0.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } @@ -8144,13 +8153,13 @@ "dev": true }, "node_modules/nise": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", - "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.2.tgz", + "integrity": "sha512-+gQjFi8v+tkfCuSCxfURHLhRhniE/+IaYbIphxAN2JRR9SHKhY8hgXpaXiYfHdw+gcGe4buxgbprBQFab9FkhA==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^6.0.0", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^7.0.4", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" @@ -10328,17 +10337,17 @@ "dev": true }, "node_modules/sinon": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", - "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz", + "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.8.1", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/samsam": "^5.3.1", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^9.1.2", + "@sinonjs/samsam": "^7.0.1", + "diff": "^5.0.0", + "nise": "^5.1.2", + "supports-color": "^7.2.0" }, "funding": { "type": "opencollective", @@ -10355,13 +10364,22 @@ "sinon": ">=4.0.0" } }, - "node_modules/sinon/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/sinon/node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, - "engines": { - "node": ">=0.3.1" + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/sinon/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" } }, "node_modules/sinon/node_modules/has-flag": { @@ -13069,30 +13087,41 @@ } }, "@sinonjs/commons": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.4.tgz", - "integrity": "sha512-RpmQdHVo8hCEHDVpO39zToS9jOhR6nw+/lQAzRNq9ErrGV9IeHM71XCn68svVl/euFeVW6BWX4p35gkhbOcSIQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } } }, "@sinonjs/samsam": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", - "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", + "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", "dev": true, "requires": { - "@sinonjs/commons": "^1.6.0", + "@sinonjs/commons": "^2.0.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } @@ -18529,13 +18558,13 @@ "dev": true }, "nise": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", - "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.2.tgz", + "integrity": "sha512-+gQjFi8v+tkfCuSCxfURHLhRhniE/+IaYbIphxAN2JRR9SHKhY8hgXpaXiYfHdw+gcGe4buxgbprBQFab9FkhA==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^6.0.0", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^7.0.4", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" @@ -20160,24 +20189,38 @@ "dev": true }, "sinon": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", - "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz", + "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==", "dev": true, "requires": { - "@sinonjs/commons": "^1.8.1", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/samsam": "^5.3.1", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^9.1.2", + "@sinonjs/samsam": "^7.0.1", + "diff": "^5.0.0", + "nise": "^5.1.2", + "supports-color": "^7.2.0" }, "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } + } }, "has-flag": { "version": "4.0.0", diff --git a/package.json b/package.json index 1faf1d52ab..737b703595 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "puppeteer": "^19.2.2", "rollup": "^2.79.1", "rollup-plugin-license": "^2.9.1", - "sinon": "^9.2.4", + "sinon": "^14.0.0", "sinon-chai": "^3.7.0", "webpack": "^5.74.0" }, From a408768b13c82211c0ad4d80a76c276d877fbe5a Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Mon, 14 Nov 2022 09:25:44 +0100 Subject: [PATCH 171/989] ci: use runner.os --- .github/workflows/CI.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 4497d7b0e3..38255b4911 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -22,18 +22,18 @@ jobs: - name: Wire dependencies run: ./tasks/wiredeps - name: Build - if: matrix.os == 'ubuntu-20.04' + if: runner.os == 'Linux' env: COVERAGE: 1 TEST_BROWSERS: Firefox,ChromeHeadless run: xvfb-run npm run all - name: Build - if: matrix.os != 'ubuntu-20.04' + if: runner.os != 'Linux' env: TEST_BROWSERS: ChromeHeadless run: npm run all - name: Upload Coverage uses: codecov/codecov-action@v3 - if: matrix.os == 'ubuntu-20.04' + if: runner.os == 'Linux' with: fail_ci_if_error: true From 60ad7d4696baf7fb839704394b332cf424ff4824 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 11 Nov 2022 12:31:23 +0100 Subject: [PATCH 172/989] test: allow diagrams to be dropped onto active test editor --- package-lock.json | 83 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + test/TestHelper.js | 28 +++++++++++++++- 3 files changed, 111 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 086ee32a1e..5d9ac60271 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,6 +40,7 @@ "eslint-plugin-bpmn-io": "^0.16.0", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", + "file-drops": "^0.4.0", "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", "karma-coverage": "^2.2.0", @@ -4567,6 +4568,34 @@ "pend": "~1.2.0" } }, + "node_modules/file-drops": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/file-drops/-/file-drops-0.4.0.tgz", + "integrity": "sha512-dPLRxrQ/sWHyU1DMf72doyyFuqeR/T8hJ97coJHXmdeHvqMTdOMJ/PLsHKjQzDHC8TBQO0rDUinDEXz3WGTnQA==", + "dev": true, + "dependencies": { + "min-dom": "^3.1.1" + } + }, + "node_modules/file-drops/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 + }, + "node_modules/file-drops/node_modules/min-dom": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", + "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", + "dev": true, + "dependencies": { + "component-event": "^0.1.4", + "domify": "^1.3.1", + "indexof": "0.0.1", + "matches-selector": "^1.2.0", + "min-dash": "^3.8.1" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -6184,6 +6213,12 @@ "node": ">=8" } }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", + "dev": true + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -7511,6 +7546,12 @@ "node": ">=0.10.0" } }, + "node_modules/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==", + "dev": true + }, "node_modules/math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", @@ -15860,6 +15901,36 @@ "pend": "~1.2.0" } }, + "file-drops": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/file-drops/-/file-drops-0.4.0.tgz", + "integrity": "sha512-dPLRxrQ/sWHyU1DMf72doyyFuqeR/T8hJ97coJHXmdeHvqMTdOMJ/PLsHKjQzDHC8TBQO0rDUinDEXz3WGTnQA==", + "dev": true, + "requires": { + "min-dom": "^3.1.1" + }, + "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 + }, + "min-dom": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", + "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", + "dev": true, + "requires": { + "component-event": "^0.1.4", + "domify": "^1.3.1", + "indexof": "0.0.1", + "matches-selector": "^1.2.0", + "min-dash": "^3.8.1" + } + } + } + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -17068,6 +17139,12 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -18066,6 +18143,12 @@ "object-visit": "^1.0.0" } }, + "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==", + "dev": true + }, "math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", diff --git a/package.json b/package.json index 737b703595..3e65bb4bc3 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "eslint-plugin-bpmn-io": "^0.16.0", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", + "file-drops": "^0.4.0", "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", "karma-coverage": "^2.2.0", diff --git a/test/TestHelper.js b/test/TestHelper.js index 36219f4e60..0ab872a03e 100644 --- a/test/TestHelper.js +++ b/test/TestHelper.js @@ -1,7 +1,10 @@ export * from './helper'; +import fileDrop from 'file-drops'; + import { - insertCSS + insertCSS, + getBpmnJS } from './helper'; insertCSS('bpmn-js.css', require('../assets/bpmn-js.css')); @@ -28,3 +31,26 @@ 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 From 4c4e3ef5064dbbaeb5e08c12836beba429002deb Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Tue, 15 Nov 2022 16:08:34 +0100 Subject: [PATCH 173/989] ci: remove wiredeps --- .github/workflows/CI.yml | 2 -- tasks/wiredeps | 33 --------------------------------- 2 files changed, 35 deletions(-) delete mode 100755 tasks/wiredeps diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 38255b4911..e8fa01d692 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -19,8 +19,6 @@ jobs: cache: 'npm' - name: Install dependencies run: npm ci - - name: Wire dependencies - run: ./tasks/wiredeps - name: Build if: runner.os == 'Linux' env: 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 From 0ebf50ed787accf921f781db38c0e7a639f81006 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 15 Nov 2022 15:24:22 +0100 Subject: [PATCH 174/989] test: fix oder of styles inclusion --- test/TestHelper.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/TestHelper.js b/test/TestHelper.js index 0ab872a03e..27cb6e9021 100644 --- a/test/TestHelper.js +++ b/test/TestHelper.js @@ -7,10 +7,10 @@ import { getBpmnJS } from './helper'; -insertCSS('bpmn-js.css', require('../assets/bpmn-js.css')); - 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', From de3a58d6b958c5a11baac66b1e802dd0906cda58 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 15 Nov 2022 14:59:39 +0100 Subject: [PATCH 175/989] deps: update to diagram-js@11.1.0 --- package-lock.json | 73 ++++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 67 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5d9ac60271..afee3e5ce3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^10.0.0", + "diagram-js": "^11.1.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -462,6 +462,15 @@ "node": ">=6.9.0" } }, + "node_modules/@bpmn-io/diagram-js-ui": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.0.tgz", + "integrity": "sha512-5uP4xgJHynGwq5SsyzzEGdRdhFUu/jfh/0tfcxH/K+W2TE7cdBde45kQdh601xzvCet+RrL8PY82uxs5D0d7qA==", + "dependencies": { + "htm": "^3.1.1", + "preact": "^10.11.2" + } + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -2549,6 +2558,14 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -3077,10 +3094,12 @@ "dev": true }, "node_modules/diagram-js": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-10.0.0.tgz", - "integrity": "sha512-VtZof5MLwVpHjTznfS7B1rQxYtpJ1Gyzse7Aan22QgMhD8FDpm0nXcIblkB//05vFJUljJfp9etNujJtmU1yvA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.1.0.tgz", + "integrity": "sha512-LDfSPHpFaXiu2LkElf2iIBmM0M9iyN189Tt0xk/GsMqm468BUXsDKBSZEqwSUPGOPd5+afCtZIS4SRlr/vgZwg==", "dependencies": { + "@bpmn-io/diagram-js-ui": "^0.2.0", + "clsx": "^1.2.1", "css.escape": "^1.5.1", "didi": "^9.0.0", "hammerjs": "^2.0.1", @@ -6052,6 +6071,11 @@ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, + "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", @@ -9359,6 +9383,15 @@ "node": ">=0.10.0" } }, + "node_modules/preact": { + "version": "10.11.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz", + "integrity": "sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==", + "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", @@ -12761,6 +12794,15 @@ "to-fast-properties": "^2.0.0" } }, + "@bpmn-io/diagram-js-ui": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.0.tgz", + "integrity": "sha512-5uP4xgJHynGwq5SsyzzEGdRdhFUu/jfh/0tfcxH/K+W2TE7cdBde45kQdh601xzvCet+RrL8PY82uxs5D0d7qA==", + "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", @@ -14345,6 +14387,11 @@ "wrap-ansi": "^7.0.0" } }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -14763,10 +14810,12 @@ "dev": true }, "diagram-js": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-10.0.0.tgz", - "integrity": "sha512-VtZof5MLwVpHjTznfS7B1rQxYtpJ1Gyzse7Aan22QgMhD8FDpm0nXcIblkB//05vFJUljJfp9etNujJtmU1yvA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.1.0.tgz", + "integrity": "sha512-LDfSPHpFaXiu2LkElf2iIBmM0M9iyN189Tt0xk/GsMqm468BUXsDKBSZEqwSUPGOPd5+afCtZIS4SRlr/vgZwg==", "requires": { + "@bpmn-io/diagram-js-ui": "^0.2.0", + "clsx": "^1.2.1", "css.escape": "^1.5.1", "didi": "^9.0.0", "hammerjs": "^2.0.1", @@ -17028,6 +17077,11 @@ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, + "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", @@ -19484,6 +19538,11 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, + "preact": { + "version": "10.11.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz", + "integrity": "sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==" + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", diff --git a/package.json b/package.json index 3e65bb4bc3..65c3a836a5 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^10.0.0", + "diagram-js": "^11.1.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From eaa42c94db233b3f1b20e4f2617783e77625ce2d Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 15 Nov 2022 15:01:14 +0100 Subject: [PATCH 176/989] feat(context-pad): add popup menu config options Closes #1775 --- lib/features/context-pad/ContextPadProvider.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/features/context-pad/ContextPadProvider.js b/lib/features/context-pad/ContextPadProvider.js index f055f546db..f7f0390af7 100644 --- a/lib/features/context-pad/ContextPadProvider.js +++ b/lib/features/context-pad/ContextPadProvider.js @@ -396,7 +396,11 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { cursor: { x: event.x, y: event.y } }); - popupMenu.open(element, 'bpmn-replace', position); + popupMenu.open(element, 'bpmn-replace', position, { + title: translate('Change element'), + width: 300, + search: true + }); } } } From e6f1555ed48f3538cfc5bae09e2871806b2cfe6d Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 16 Nov 2022 16:22:29 +0100 Subject: [PATCH 177/989] test(popup-menu): update popup menu container --- .../context-pad/ContextPadProviderSpec.js | 23 +++++++++---------- .../popup-menu/ReplaceMenuProviderSpec.js | 9 ++++++-- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/test/spec/features/context-pad/ContextPadProviderSpec.js b/test/spec/features/context-pad/ContextPadProviderSpec.js index 182623707d..663e6f3dd8 100644 --- a/test/spec/features/context-pad/ContextPadProviderSpec.js +++ b/test/spec/features/context-pad/ContextPadProviderSpec.js @@ -438,13 +438,6 @@ 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 @@ -459,7 +452,7 @@ describe('features - context-pad', function() { contextPad.trigger('click', padEvent('replace')); padMenuRect = contextPad.getPad(element).html.getBoundingClientRect(); - replaceMenuRect = domQuery('.bpmn-replace', container).getBoundingClientRect(); + replaceMenuRect = domQuery('.bpmn-replace', getMenuContainer()).getBoundingClientRect(); // then expect(replaceMenuRect.left).to.be.at.most(padMenuRect.left); @@ -530,7 +523,7 @@ describe('features - context-pad', function() { dragging.end(canvasEvent({ x: 75, y: 75 }, { ctrlKey: true, metaKey: true })); - replaceMenu = domQuery('.bpmn-replace', container); + replaceMenu = domQuery('.bpmn-replace', getMenuContainer()); // then expect(replaceMenu).to.exist; @@ -558,7 +551,7 @@ 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); + var replaceMenu = domQueryAll('[data-id$="-boundary"]', getMenuContainer()); expect(replaceMenu).to.exist; expect(replaceMenu.length).to.eql(12); } @@ -582,7 +575,7 @@ describe('features - context-pad', function() { dragging.end(canvasEvent({ x: 75, y: 75 }, { ctrlKey: true, metaKey: true })); - replaceMenu = domQuery('.bpmn-replace', container); + replaceMenu = domQuery('.bpmn-replace', getMenuContainer()); // then expect(replaceMenu).not.to.exist; @@ -608,7 +601,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 = domQuery('.bpmn-replace', getMenuContainer()); expect(replaceMenu).not.to.exist; } @@ -712,3 +705,9 @@ function padEvent(entry) { }; }); } + + +function getMenuContainer() { + const popup = getBpmnJS().get('popupMenu'); + return popup._current.container; +} \ No newline at end of file diff --git a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js index 77f198da9f..3342de7e21 100644 --- a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js +++ b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js @@ -2470,13 +2470,13 @@ 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(); + var container = getMenuContainer(); return domQueryAll('.djs-popup .entry', container); } @@ -2498,3 +2498,8 @@ function triggerAction(id) { return popupMenu.trigger(globalEvent(entry, { x: 0, y: 0 })); } + +function getMenuContainer() { + const popup = getBpmnJS().get('popupMenu'); + return popup._current.container; +} \ No newline at end of file From fbcea711c37e4b880070dda107a43f0efa0e8ba2 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 16 Nov 2022 16:32:44 +0100 Subject: [PATCH 178/989] feat(align-elements): adjust custom CSS to new popup menu --- assets/bpmn-js.css | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/assets/bpmn-js.css b/assets/bpmn-js.css index c9f3b9e09b..84f98db409 100644 --- a/assets/bpmn-js.css +++ b/assets/bpmn-js.css @@ -115,7 +115,7 @@ display: inherit; } -[data-popup="align-elements"] .djs-popup-body { +[data-popup="align-elements"] .djs-popup-results { display: flex; } @@ -132,13 +132,13 @@ padding: 6px 8px; } -[data-popup="align-elements"] .djs-popup-body .entry img { - display: block; +[data-popup="align-elements"] .djs-popup-body .entry:not(:first-child) { + margin-top: 0; +} +[data-popup="align-elements"] .djs-popup-entry-icon { + display: block; + margin: 0; height: 20px; width: 20px; } - -[data-popup="align-elements"] .bjs-align-elements-menu-entry { - display: inline-block; -} From 93b5f23dcba86390310f7f97cbe4ba4bc77cf7c1 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Thu, 24 Nov 2022 12:15:37 +0100 Subject: [PATCH 179/989] feat: adjust replace/align menu position --- .../AlignElementsContextPadProvider.js | 13 ++++--------- lib/features/context-pad/ContextPadProvider.js | 14 ++++---------- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/lib/features/align-elements/AlignElementsContextPadProvider.js b/lib/features/align-elements/AlignElementsContextPadProvider.js index 235d053c16..68a91235b5 100644 --- a/lib/features/align-elements/AlignElementsContextPadProvider.js +++ b/lib/features/align-elements/AlignElementsContextPadProvider.js @@ -69,18 +69,13 @@ AlignElementsContextPadProvider.prototype._getEntries = function(elements) { AlignElementsContextPadProvider.prototype._getMenuPosition = function(elements) { var Y_OFFSET = 5; - var diagramContainer = this._canvas.getContainer(), - pad = this._contextPad.getPad(elements).html; + var pad = this._contextPad.getPad(elements).html; - var diagramRect = diagramContainer.getBoundingClientRect(), - padRect = pad.getBoundingClientRect(); - - var top = padRect.top - diagramRect.top; - var left = padRect.left - diagramRect.left; + var padRect = pad.getBoundingClientRect(); var pos = { - x: left, - y: top + padRect.height + Y_OFFSET + x: padRect.left, + y: padRect.bottom + Y_OFFSET }; return pos; diff --git a/lib/features/context-pad/ContextPadProvider.js b/lib/features/context-pad/ContextPadProvider.js index f7f0390af7..c5cf2b157b 100644 --- a/lib/features/context-pad/ContextPadProvider.js +++ b/lib/features/context-pad/ContextPadProvider.js @@ -137,7 +137,6 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { connect = this._connect, create = this._create, popupMenu = this._popupMenu, - canvas = this._canvas, rules = this._rules, autoPlace = this._autoPlace, translate = this._translate; @@ -162,18 +161,13 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { var Y_OFFSET = 5; - var diagramContainer = canvas.getContainer(), - pad = contextPad.getPad(element).html; + var pad = contextPad.getPad(element).html; - var diagramRect = diagramContainer.getBoundingClientRect(), - padRect = pad.getBoundingClientRect(); - - var top = padRect.top - diagramRect.top; - var left = padRect.left - diagramRect.left; + var padRect = pad.getBoundingClientRect(); var pos = { - x: left, - y: top + padRect.height + Y_OFFSET + x: padRect.left, + y: padRect.bottom + Y_OFFSET }; return pos; From 786b6f27cfe8812e24dfe27f99727ebf06b54dee Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Thu, 24 Nov 2022 14:55:54 +0100 Subject: [PATCH 180/989] chore(CHANGELOG): update to v11.0.0 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7f7de8008..144a02611c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.0.0 +* `FEAT`: integrate new popup menu UI ([#1776](https://github.com/bpmn-io/bpmn-js/pull/1776)) +* `DEPS`: update to diagram-js@11.1.0 ([#1776](https://github.com/bpmn-io/bpmn-js/pull/1776)) + +### Breaking Changes +* New popup menu UI introduced with `diagram-js` update. See [`diagram-js` breaking changes and migration guide](https://github.com/bpmn-io/diagram-js/blob/develop/CHANGELOG.md#breaking-changes). + ## 10.3.0 * `FEAT`: add BPMN specific space tool ([#1344](https://github.com/bpmn-io/bpmn-js/pull/1344)) From 1aa740ed68c2a3c17873f365c18e299b90162c4f Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Thu, 24 Nov 2022 16:05:07 +0100 Subject: [PATCH 181/989] 11.0.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index afee3e5ce3..42655bfe69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "10.3.0", + "version": "11.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "10.3.0", + "version": "11.0.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 65c3a836a5..058df35f20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "10.3.0", + "version": "11.0.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From cd8dc5df6ac53eefbffdad4f17fb43161e59e8dc Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 24 Nov 2022 16:42:57 +0100 Subject: [PATCH 182/989] chore(CHANGELOG): improve formatting --- CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 144a02611c..89fe587cd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,18 +2,20 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documented here. We use [semantic versioning](http://semver.org/) for releases. - ## Unreleased ___Note:__ Yet to be released changes appear here._ ## 11.0.0 + * `FEAT`: integrate new popup menu UI ([#1776](https://github.com/bpmn-io/bpmn-js/pull/1776)) -* `DEPS`: update to diagram-js@11.1.0 ([#1776](https://github.com/bpmn-io/bpmn-js/pull/1776)) +* `DEPS`: update to `diagram-js@11.1.0` ([#1776](https://github.com/bpmn-io/bpmn-js/pull/1776)) ### Breaking Changes + * New popup menu UI introduced with `diagram-js` update. See [`diagram-js` breaking changes and migration guide](https://github.com/bpmn-io/diagram-js/blob/develop/CHANGELOG.md#breaking-changes). + ## 10.3.0 * `FEAT`: add BPMN specific space tool ([#1344](https://github.com/bpmn-io/bpmn-js/pull/1344)) From d3aa17858449a35b50b046a2f91fc4b97eeaf710 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 24 Nov 2022 16:43:51 +0100 Subject: [PATCH 183/989] chore: update to puppeteer@19.3.0 --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 42655bfe69..e63c25cafd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "mocha": "^10.1.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", - "puppeteer": "^19.2.2", + "puppeteer": "^19.3.0", "rollup": "^2.79.1", "rollup-plugin-license": "^2.9.1", "sinon": "^14.0.0", @@ -9462,9 +9462,9 @@ } }, "node_modules/puppeteer": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.2.tgz", - "integrity": "sha512-m1T5Mog5qu5+dMBptWYTn6pXRdnFbydbVUCthqwbfd8/kOiMlzZBR9ywjX79LpvI1Sj+/z8+FKeIsjnMul8ZYA==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.3.0.tgz", + "integrity": "sha512-WJbi/ULaeuFOz7cfMgJlJCBAZiyqIFeQ6os4h5ex3PVTt2qosXgwI9eruFZqFAwJRv8x5pOuMhWR0aSRgyDqEg==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -9473,16 +9473,16 @@ "https-proxy-agent": "5.0.1", "progress": "2.0.3", "proxy-from-env": "1.1.0", - "puppeteer-core": "19.2.2" + "puppeteer-core": "19.3.0" }, "engines": { "node": ">=14.1.0" } }, "node_modules/puppeteer-core": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.2.tgz", - "integrity": "sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.3.0.tgz", + "integrity": "sha512-P8VAAOBnBJo/7DKJnj1b0K9kZBF2D8lkdL94CjJ+DZKCp182LQqYemPI9omUSZkh4bgykzXjZhaVR1qtddTTQg==", "dev": true, "dependencies": { "cross-fetch": "3.1.5", @@ -19601,9 +19601,9 @@ "dev": true }, "puppeteer": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.2.tgz", - "integrity": "sha512-m1T5Mog5qu5+dMBptWYTn6pXRdnFbydbVUCthqwbfd8/kOiMlzZBR9ywjX79LpvI1Sj+/z8+FKeIsjnMul8ZYA==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.3.0.tgz", + "integrity": "sha512-WJbi/ULaeuFOz7cfMgJlJCBAZiyqIFeQ6os4h5ex3PVTt2qosXgwI9eruFZqFAwJRv8x5pOuMhWR0aSRgyDqEg==", "dev": true, "requires": { "cosmiconfig": "7.0.1", @@ -19611,13 +19611,13 @@ "https-proxy-agent": "5.0.1", "progress": "2.0.3", "proxy-from-env": "1.1.0", - "puppeteer-core": "19.2.2" + "puppeteer-core": "19.3.0" } }, "puppeteer-core": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.2.tgz", - "integrity": "sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.3.0.tgz", + "integrity": "sha512-P8VAAOBnBJo/7DKJnj1b0K9kZBF2D8lkdL94CjJ+DZKCp182LQqYemPI9omUSZkh4bgykzXjZhaVR1qtddTTQg==", "dev": true, "requires": { "cross-fetch": "3.1.5", diff --git a/package.json b/package.json index 058df35f20..3267e149a4 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "mocha": "^10.1.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", - "puppeteer": "^19.2.2", + "puppeteer": "^19.3.0", "rollup": "^2.79.1", "rollup-plugin-license": "^2.9.1", "sinon": "^14.0.0", From d2c1346e2e6ebbe04f8fa39979f942641ae91374 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 25 Nov 2022 09:08:23 +0100 Subject: [PATCH 184/989] chore(CHANGELOG): add entries --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89fe587cd9..8d501dd6ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ ___Note:__ Yet to be released changes appear here._ ### Breaking Changes * New popup menu UI introduced with `diagram-js` update. See [`diagram-js` breaking changes and migration guide](https://github.com/bpmn-io/diagram-js/blob/develop/CHANGELOG.md#breaking-changes). +* Keyboard-related features no longer use `KeyboardEvent#keyCode`. Use a polyfill (e.g. [keyboardevent-key-polyfill](https://www.npmjs.com/package/keyboardevent-key-polyfill)) if you need to support old browsers. ## 10.3.0 From 7d7cfe82352724cb52b2bf78de3b093fc4d90d5f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 25 Nov 2022 15:28:18 +0100 Subject: [PATCH 185/989] deps: update to diagram-js@11.1.1 --- package-lock.json | 14 +++---- package.json | 2 +- .../context-pad/ContextPadProviderSpec.js | 37 +++++++++---------- 3 files changed, 25 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index e63c25cafd..b20521215e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.1.0", + "diagram-js": "^11.1.1", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3094,9 +3094,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.1.0.tgz", - "integrity": "sha512-LDfSPHpFaXiu2LkElf2iIBmM0M9iyN189Tt0xk/GsMqm468BUXsDKBSZEqwSUPGOPd5+afCtZIS4SRlr/vgZwg==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.1.1.tgz", + "integrity": "sha512-T2xzwQLeMfqT66Dup7cluozGbZ8R2Pmt3DXjLhaGAdjqpBoxg6huUTdpLEgP4uRUos3mhZqtTm8NOpAKSJg5pA==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.0", "clsx": "^1.2.1", @@ -14810,9 +14810,9 @@ "dev": true }, "diagram-js": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.1.0.tgz", - "integrity": "sha512-LDfSPHpFaXiu2LkElf2iIBmM0M9iyN189Tt0xk/GsMqm468BUXsDKBSZEqwSUPGOPd5+afCtZIS4SRlr/vgZwg==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.1.1.tgz", + "integrity": "sha512-T2xzwQLeMfqT66Dup7cluozGbZ8R2Pmt3DXjLhaGAdjqpBoxg6huUTdpLEgP4uRUos3mhZqtTm8NOpAKSJg5pA==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.0", "clsx": "^1.2.1", diff --git a/package.json b/package.json index 3267e149a4..5c37c37493 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.1.0", + "diagram-js": "^11.1.1", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", diff --git a/test/spec/features/context-pad/ContextPadProviderSpec.js b/test/spec/features/context-pad/ContextPadProviderSpec.js index 663e6f3dd8..e26b8040c9 100644 --- a/test/spec/features/context-pad/ContextPadProviderSpec.js +++ b/test/spec/features/context-pad/ContextPadProviderSpec.js @@ -438,11 +438,12 @@ describe('features - context-pad', function() { modules: testModules })); + 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; @@ -452,11 +453,11 @@ describe('features - context-pad', function() { contextPad.trigger('click', padEvent('replace')); padMenuRect = contextPad.getPad(element).html.getBoundingClientRect(); - replaceMenuRect = domQuery('.bpmn-replace', getMenuContainer()).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); })); @@ -507,12 +508,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); @@ -523,10 +523,8 @@ describe('features - context-pad', function() { dragging.end(canvasEvent({ x: 75, y: 75 }, { ctrlKey: true, metaKey: true })); - replaceMenu = domQuery('.bpmn-replace', getMenuContainer()); - // then - expect(replaceMenu).to.exist; + expect(popupMenu.isOpen()).to.be.true; } )); @@ -551,9 +549,8 @@ describe('features - context-pad', function() { dragging.end(canvasEvent({ x: 50, y: 65 }, { ctrlKey: true, metaKey: true })); // then - var replaceMenu = domQueryAll('[data-id$="-boundary"]', getMenuContainer()); - expect(replaceMenu).to.exist; - expect(replaceMenu.length).to.eql(12); + var replaceMenuEntries = domQueryAll('[data-id$="-boundary"]', getPopupMenu()); + expect(replaceMenuEntries).to.have.length(12); } )); @@ -571,11 +568,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', getMenuContainer()); + replaceMenu = domQuery('.bpmn-replace', getPopupMenu()); // then expect(replaceMenu).not.to.exist; @@ -601,8 +598,7 @@ describe('features - context-pad', function() { dragging.end(canvasEvent({ x: 75, y: 75 }, { ctrlKey: true, metaKey: true })); // then - var replaceMenu = domQuery('.bpmn-replace', getMenuContainer()); - + var replaceMenu = getPopupMenu(); expect(replaceMenu).not.to.exist; } )); @@ -707,7 +703,8 @@ function padEvent(entry) { } -function getMenuContainer() { +function getPopupMenu() { const popup = getBpmnJS().get('popupMenu'); - return popup._current.container; + + return popup._current && domQuery('.djs-popup', popup._current.container); } \ No newline at end of file From 159c9870ef0e34439a196a4464c8bd1a98928d8d Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 25 Nov 2022 15:28:56 +0100 Subject: [PATCH 186/989] chore(CHANGELOG): update to v11.0.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d501dd6ad..12a2453a50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.0.1 + +* `DEPS`: update to `diagram-js@11.1.1` + ## 11.0.0 * `FEAT`: integrate new popup menu UI ([#1776](https://github.com/bpmn-io/bpmn-js/pull/1776)) From 3b1f4cf2b700802a82ca2b18fcf6204f299f0965 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 25 Nov 2022 15:54:53 +0100 Subject: [PATCH 187/989] 11.0.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b20521215e..12f32878ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.0.0", + "version": "11.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.0.0", + "version": "11.0.1", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 5c37c37493..5be737df1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.0.0", + "version": "11.0.1", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 3e22b76ec6d87d4279a13d84dde637ebea11fd48 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 25 Nov 2022 16:07:43 +0100 Subject: [PATCH 188/989] chore(CHANGELOG): add diagram-js version --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12a2453a50..91203693b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,7 @@ ___Note:__ Yet to be released changes appear here._ ### Breaking Changes -* New popup menu UI introduced with `diagram-js` update. See [`diagram-js` breaking changes and migration guide](https://github.com/bpmn-io/diagram-js/blob/develop/CHANGELOG.md#breaking-changes). +* New popup menu UI introduced with `diagram-js@11`. See [`diagram-js` breaking changes and migration guide](https://github.com/bpmn-io/diagram-js/blob/develop/CHANGELOG.md#breaking-changes). * Keyboard-related features no longer use `KeyboardEvent#keyCode`. Use a polyfill (e.g. [keyboardevent-key-polyfill](https://www.npmjs.com/package/keyboardevent-key-polyfill)) if you need to support old browsers. From 372afaca7ddd1b122c233ac2a45526365421bc52 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 28 Nov 2022 01:55:03 +0000 Subject: [PATCH 189/989] chore: update slackapi/slack-github-action action to v1.23.0 --- .github/workflows/MERGE_MASTER_TO_DEVELOP.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/MERGE_MASTER_TO_DEVELOP.yml b/.github/workflows/MERGE_MASTER_TO_DEVELOP.yml index 6e0e42f337..6c1e0ce7b4 100644 --- a/.github/workflows/MERGE_MASTER_TO_DEVELOP.yml +++ b/.github/workflows/MERGE_MASTER_TO_DEVELOP.yml @@ -25,7 +25,7 @@ jobs: - name: Notify failure on Slack if: failure() - uses: slackapi/slack-github-action@v1.15.0 + uses: slackapi/slack-github-action@v1.23.0 with: channel-id: ${{ secrets.SLACK_CHANNEL_ID }} slack-message: "Automatic merge of to failed." From 7746caff3c796de1722c8e50d8c225ba6263a7e8 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 5 Dec 2022 10:53:21 +0100 Subject: [PATCH 190/989] docs: modernize example --- test/helper/index.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/helper/index.js b/test/helper/index.js index 28edf508d9..03ec841b83 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')); * ``` */ From 98a49c2859416967fd12b96f187e70a164e19785 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Dec 2022 00:27:49 +0000 Subject: [PATCH 191/989] chore: update dependency sinon to v15 --- package-lock.json | 26 +++++++++++++------------- package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 12f32878ee..ed48d5b8be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,7 +58,7 @@ "puppeteer": "^19.3.0", "rollup": "^2.79.1", "rollup-plugin-license": "^2.9.1", - "sinon": "^14.0.0", + "sinon": "^15.0.0", "sinon-chai": "^3.7.0", "webpack": "^5.74.0" } @@ -10411,9 +10411,9 @@ "dev": true }, "node_modules/sinon": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz", - "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.0.tgz", + "integrity": "sha512-pV97G1GbslaSJoSdy2F2z8uh5F+uPGp3ddOzA4JsBOUBLEQRz2OAqlKGRFTSh2KiqUCmHkzyAeu7R4x1Hx0wwg==", "dev": true, "dependencies": { "@sinonjs/commons": "^2.0.0", @@ -10448,9 +10448,9 @@ } }, "node_modules/sinon/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", - "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" @@ -20331,9 +20331,9 @@ "dev": true }, "sinon": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz", - "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.0.tgz", + "integrity": "sha512-pV97G1GbslaSJoSdy2F2z8uh5F+uPGp3ddOzA4JsBOUBLEQRz2OAqlKGRFTSh2KiqUCmHkzyAeu7R4x1Hx0wwg==", "dev": true, "requires": { "@sinonjs/commons": "^2.0.0", @@ -20354,9 +20354,9 @@ }, "dependencies": { "@sinonjs/commons": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", - "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "requires": { "type-detect": "4.0.8" diff --git a/package.json b/package.json index 5be737df1e..f9f4a15dec 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "puppeteer": "^19.3.0", "rollup": "^2.79.1", "rollup-plugin-license": "^2.9.1", - "sinon": "^14.0.0", + "sinon": "^15.0.0", "sinon-chai": "^3.7.0", "webpack": "^5.74.0" }, From 4d594d597438ce1199531ecee201607caacd7ffe Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 5 Dec 2022 14:06:54 +0100 Subject: [PATCH 192/989] fix(popup-menu): correctly verify entry equality The current ReplaceOptions.TRANSACTION / ReplaceOptions.EVENT_SUB_PROCESS mask a bug that prevents us from properly detecting equality of popup menu entries. This commit fixes the bug and removes the workaround in the replace options. --- lib/features/popup-menu/util/TypeUtil.js | 4 +++- lib/features/replace/ReplaceOptions.js | 30 ++++++++---------------- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/lib/features/popup-menu/util/TypeUtil.js b/lib/features/popup-menu/util/TypeUtil.js index 99ae6a9f76..abe60602d7 100644 --- a/lib/features/popup-menu/util/TypeUtil.js +++ b/lib/features/popup-menu/util/TypeUtil.js @@ -31,7 +31,9 @@ export function isDifferentType(element) { ); var isTriggeredByEventEqual = ( - businessObject.triggeredByEvent === target.triggeredByEvent + + // coherse to + !!target.triggeredByEvent === !!businessObject.triggeredByEvent ); var isExpandedEqual = ( diff --git a/lib/features/replace/ReplaceOptions.js b/lib/features/replace/ReplaceOptions.js index bb9d8d1c72..4c64dadd46 100644 --- a/lib/features/replace/ReplaceOptions.js +++ b/lib/features/replace/ReplaceOptions.js @@ -402,6 +402,15 @@ export var SUBPROCESS_EXPANDED = [ ]; export var TRANSACTION = [ + { + label: 'Transaction', + actionName: 'replace-with-transaction', + className: 'bpmn-icon-transaction', + target: { + type: 'bpmn:Transaction', + isExpanded: true + } + }, { label: 'Sub Process', actionName: 'replace-with-subprocess', @@ -423,26 +432,7 @@ export var TRANSACTION = [ } ]; -export var EVENT_SUB_PROCESS = [ - { - label: 'Sub Process', - actionName: 'replace-with-subprocess', - className: 'bpmn-icon-subprocess-expanded', - target: { - type: 'bpmn:SubProcess', - isExpanded: true - } - }, - { - label: 'Transaction', - actionName: 'replace-with-transaction', - className: 'bpmn-icon-transaction', - target: { - type: 'bpmn:Transaction', - isExpanded: true - } - } -]; +export var EVENT_SUB_PROCESS = TRANSACTION; export var TASK = [ { From ff2b562e865aac3ddf6a888e573a2db502e757f3 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 5 Dec 2022 17:40:16 +0100 Subject: [PATCH 193/989] chore(CHANGELOG): update to v11.0.2 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91203693b3..553bccae6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.0.2 + +* `FIX`: correct test for replace options ([#1787](https://github.com/bpmn-io/bpmn-js/pull/1787)) + ## 11.0.1 * `DEPS`: update to `diagram-js@11.1.1` From b7a8bb379a4302467cd36f4895e4edf007335234 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 5 Dec 2022 17:44:28 +0100 Subject: [PATCH 194/989] 11.0.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ed48d5b8be..29a9e7f859 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.0.1", + "version": "11.0.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.0.1", + "version": "11.0.2", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index f9f4a15dec..d77a687269 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.0.1", + "version": "11.0.2", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From d8d64ff2dd040c2da564ba4c6989c9ac65270dae Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 5 Dec 2022 17:49:49 +0100 Subject: [PATCH 195/989] 11.0.3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 29a9e7f859..ca7af73298 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.0.2", + "version": "11.0.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.0.2", + "version": "11.0.3", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index d77a687269..0982fd2048 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.0.2", + "version": "11.0.3", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From df563224616a59da8cf39d77d7e7842c79f4468f Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 5 Dec 2022 21:49:59 +0100 Subject: [PATCH 196/989] chore(CHANGELOG): add v11.0.3 entry --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 553bccae6d..c3e0449be2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.0.3 + +_Re-release of `v11.0.2`._ + ## 11.0.2 * `FIX`: correct test for replace options ([#1787](https://github.com/bpmn-io/bpmn-js/pull/1787)) From a4318a982f9294616787908d3112fff1d1c3886a Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 7 Dec 2022 20:00:55 +0100 Subject: [PATCH 197/989] deps: update to diagram-js@11.2.1 Fixes various minor popup menu glitches and styling issues. --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ca7af73298..17dfc66360 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.1.1", + "diagram-js": "^11.2.1", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3094,9 +3094,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.1.1.tgz", - "integrity": "sha512-T2xzwQLeMfqT66Dup7cluozGbZ8R2Pmt3DXjLhaGAdjqpBoxg6huUTdpLEgP4uRUos3mhZqtTm8NOpAKSJg5pA==", + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.2.1.tgz", + "integrity": "sha512-iQFM3iwJN3i6rw1wlRJ4Dts7NQ+4Qo6tFEf4HPuElB+KuSX8D1igiVaakMpm0FQsGr7gn09PZMLGOzDxGUd7EQ==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.0", "clsx": "^1.2.1", @@ -14810,9 +14810,9 @@ "dev": true }, "diagram-js": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.1.1.tgz", - "integrity": "sha512-T2xzwQLeMfqT66Dup7cluozGbZ8R2Pmt3DXjLhaGAdjqpBoxg6huUTdpLEgP4uRUos3mhZqtTm8NOpAKSJg5pA==", + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.2.1.tgz", + "integrity": "sha512-iQFM3iwJN3i6rw1wlRJ4Dts7NQ+4Qo6tFEf4HPuElB+KuSX8D1igiVaakMpm0FQsGr7gn09PZMLGOzDxGUd7EQ==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.0", "clsx": "^1.2.1", diff --git a/package.json b/package.json index 0982fd2048..c85d9b3125 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.1.1", + "diagram-js": "^11.2.1", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From 59d456b3c92b1a509c09ff0ceda502958cd231d5 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 7 Dec 2022 20:03:50 +0100 Subject: [PATCH 198/989] chore(CHANGELOG): update to v11.0.4 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3e0449be2..eb1398de58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.0.4 + +* `DEPS`: update to `diagram-js@11.2.0` + ## 11.0.3 _Re-release of `v11.0.2`._ From 728ec165f3b1fab9b36295dd57708982bbf03224 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 7 Dec 2022 20:08:12 +0100 Subject: [PATCH 199/989] test: make more robust --- test/spec/features/popup-menu/ReplaceMenuProviderSpec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js index 3342de7e21..adc9a02e94 100644 --- a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js +++ b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js @@ -1477,7 +1477,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 (removes content)'); })); @@ -1493,7 +1493,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'); })); }); From 0c9f43583851c471d089630f7121b93a56ae7c1c Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 7 Dec 2022 20:17:39 +0100 Subject: [PATCH 200/989] 11.0.4 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 17dfc66360..a3ed5600be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.0.3", + "version": "11.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.0.3", + "version": "11.0.4", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index c85d9b3125..a4d6db28cd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.0.3", + "version": "11.0.4", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 13882e0a0928d502c5194bc689b56b3b96240048 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Thu, 8 Dec 2022 15:25:34 +0100 Subject: [PATCH 201/989] deps: update to diagram-js@11.3.0 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index a3ed5600be..158b6044e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.2.1", + "diagram-js": "^11.3.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3094,9 +3094,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.2.1.tgz", - "integrity": "sha512-iQFM3iwJN3i6rw1wlRJ4Dts7NQ+4Qo6tFEf4HPuElB+KuSX8D1igiVaakMpm0FQsGr7gn09PZMLGOzDxGUd7EQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.3.0.tgz", + "integrity": "sha512-+k3mkt6dQLjBF67K7oNcZuI+lSczX1L/52+clH2RLVwimVb/YkhEmtqTCEpqRRCIVZR09sfdj3+PgjAoIVoZyQ==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.0", "clsx": "^1.2.1", @@ -14810,9 +14810,9 @@ "dev": true }, "diagram-js": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.2.1.tgz", - "integrity": "sha512-iQFM3iwJN3i6rw1wlRJ4Dts7NQ+4Qo6tFEf4HPuElB+KuSX8D1igiVaakMpm0FQsGr7gn09PZMLGOzDxGUd7EQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.3.0.tgz", + "integrity": "sha512-+k3mkt6dQLjBF67K7oNcZuI+lSczX1L/52+clH2RLVwimVb/YkhEmtqTCEpqRRCIVZR09sfdj3+PgjAoIVoZyQ==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.0", "clsx": "^1.2.1", diff --git a/package.json b/package.json index a4d6db28cd..c4aea384bb 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.2.1", + "diagram-js": "^11.3.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From 75f87afdb2eb5094f2b29206916739955e84bb0e Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Thu, 8 Dec 2022 15:51:33 +0100 Subject: [PATCH 202/989] chore(CHANGELOG): update to v11.0.5 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb1398de58..ffd6a00d42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.0.5 + +* `DEPS`: update to `diagram-js@11.3.0` + ## 11.0.4 * `DEPS`: update to `diagram-js@11.2.0` From 84fe60bffdbda729aa10666acbbc9a98e915094a Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Thu, 8 Dec 2022 15:55:20 +0100 Subject: [PATCH 203/989] 11.0.5 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 158b6044e9..1f763eda5f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.0.4", + "version": "11.0.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.0.4", + "version": "11.0.5", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index c4aea384bb..33881ce989 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.0.4", + "version": "11.0.5", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From cc6fb9271c59a863ed8dfe6c0c4c1043d8244f12 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 8 Dec 2022 09:35:03 +0100 Subject: [PATCH 204/989] test: skip failing MacOS test --- test/config/karma.unit.js | 4 +++ .../replace-preview/BpmnReplacePreviewSpec.js | 25 +++++++++++++------ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/test/config/karma.unit.js b/test/config/karma.unit.js index f2d29acb69..3956203039 100644 --- a/test/config/karma.unit.js +++ b/test/config/karma.unit.js @@ -48,6 +48,10 @@ module.exports = function(karma) { ] }, + envPreProcessor: [ + 'CI' + ], + browsers, browserNoActivityTimeout: 30000, diff --git a/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js b/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js index 44643ced16..c1f95cf485 100644 --- a/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js +++ b/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js @@ -25,11 +25,6 @@ import { describe('features/replace-preview', function() { - // adopt conservative retry strategy - // in an attempt to improve the stability - // of our test suite - this.retries(2); - var diagramXML = require('./BpmnReplacePreview.bpmn'); var startEvent1, @@ -106,7 +101,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 }); @@ -118,7 +113,6 @@ describe('features/replace-preview', function() { expect(visualReplacements[startEvent1.id]).to.exist; expect(Object.keys(visualReplacements).length).to.equal(1); - })); @@ -328,3 +322,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 From 0e8cb2fe18c2f7f18043bc0d18c7263921b4d470 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Fri, 2 Dec 2022 16:24:46 +0100 Subject: [PATCH 205/989] feat(editor-actions): register 'replaceElement' action --- .../editor-actions/BpmnEditorActions.js | 9 ++- test/spec/ModelerSpec.js | 3 +- .../editor-actions/BpmnEditorActionsSpec.js | 70 +++++++++++++++++++ 3 files changed, 80 insertions(+), 2 deletions(-) diff --git a/lib/features/editor-actions/BpmnEditorActions.js b/lib/features/editor-actions/BpmnEditorActions.js index c15b408053..5ccd8f3a92 100644 --- a/lib/features/editor-actions/BpmnEditorActions.js +++ b/lib/features/editor-actions/BpmnEditorActions.js @@ -51,6 +51,7 @@ BpmnEditorActions.prototype._registerDefaultActions = function(injector) { var directEditing = injector.get('directEditing', false); var searchPad = injector.get('searchPad', false); var modeling = injector.get('modeling', false); + var contextPad = injector.get('contextPad', false); // (2) check components and register actions @@ -174,4 +175,10 @@ BpmnEditorActions.prototype._registerDefaultActions = function(injector) { }); } -}; \ No newline at end of file + if (selection && contextPad) { + this._registerAction('replaceElement', function(event) { + contextPad.triggerEntry('replace', 'click', event); + }); + } + +}; diff --git a/test/spec/ModelerSpec.js b/test/spec/ModelerSpec.js index bc82eb2c61..67e19dbf3f 100644 --- a/test/spec/ModelerSpec.js +++ b/test/spec/ModelerSpec.js @@ -283,7 +283,8 @@ describe('Modeler', function() { 'setColor', 'directEditing', 'find', - 'moveToOrigin' + 'moveToOrigin', + 'replaceElement' ]; var modeler = new Modeler(); diff --git a/test/spec/features/editor-actions/BpmnEditorActionsSpec.js b/test/spec/features/editor-actions/BpmnEditorActionsSpec.js index 5c7b67f70e..197e698404 100644 --- a/test/spec/features/editor-actions/BpmnEditorActionsSpec.js +++ b/test/spec/features/editor-actions/BpmnEditorActionsSpec.js @@ -16,6 +16,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 +212,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(elementRegistry, selection, 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 multple 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; + })); + + }); + }); From 59ceb815db72bef86c99cc4cf19aefece196e9e3 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Fri, 2 Dec 2022 16:36:53 +0100 Subject: [PATCH 206/989] feat(keyboard-bindings): add shortcut for replace Closes #1782 --- lib/features/keyboard/BpmnKeyboardBindings.js | 17 ++++++++++ .../keyboard/BpmnKeyboardBindingsSpec.js | 33 +++++++++++++++++-- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/lib/features/keyboard/BpmnKeyboardBindings.js b/lib/features/keyboard/BpmnKeyboardBindings.js index f74b3e55cc..819f9be915 100644 --- a/lib/features/keyboard/BpmnKeyboardBindings.js +++ b/lib/features/keyboard/BpmnKeyboardBindings.js @@ -155,4 +155,21 @@ BpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActio } }); + // activate replace element + // R + addListener('replaceElement', function(context) { + + var event = context.keyEvent; + + if (keyboard.hasModifier(event)) { + return; + } + + if (keyboard.isKey([ 'r', 'R' ], event)) { + editorActions.trigger('replaceElement', event); + + return true; + } + }); + }; \ No newline at end of file diff --git a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js index 4e08ab00b6..24c181a5f1 100644 --- a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js +++ b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js @@ -16,6 +16,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 +39,9 @@ describe('features/keyboard', function() { lassoToolModule, modelingModule, searchModule, - spaceToolModule + spaceToolModule, + popupMenu, + contextPad ]; beforeEach(bootstrapViewer(diagramXML, { modules: testModules })); @@ -63,7 +67,8 @@ describe('features/keyboard', function() { 'setColor', 'directEditing', 'find', - 'moveToOrigin' + 'moveToOrigin', + 'replaceElement' ]; // then @@ -194,6 +199,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; + })); + + }); + + }); }); From dd3d9dab30e652a5de1d29cfe30e05ea2ca1cff3 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 12 Dec 2022 23:17:10 +0100 Subject: [PATCH 207/989] deps: update to `diagram-js@11.4.1` --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1f763eda5f..abae525f31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.3.0", + "diagram-js": "^11.4.1", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3094,9 +3094,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.3.0.tgz", - "integrity": "sha512-+k3mkt6dQLjBF67K7oNcZuI+lSczX1L/52+clH2RLVwimVb/YkhEmtqTCEpqRRCIVZR09sfdj3+PgjAoIVoZyQ==", + "version": "11.4.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.4.1.tgz", + "integrity": "sha512-JYVNwoGZY1Zi/2LoXpPUBLu9dGgEzWNqK4yH6nnGNDfqrtfALK3RaMXFMVrKdmX5XV/DmSMf4qFpu/U/8s7VDw==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.0", "clsx": "^1.2.1", @@ -14810,9 +14810,9 @@ "dev": true }, "diagram-js": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.3.0.tgz", - "integrity": "sha512-+k3mkt6dQLjBF67K7oNcZuI+lSczX1L/52+clH2RLVwimVb/YkhEmtqTCEpqRRCIVZR09sfdj3+PgjAoIVoZyQ==", + "version": "11.4.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.4.1.tgz", + "integrity": "sha512-JYVNwoGZY1Zi/2LoXpPUBLu9dGgEzWNqK4yH6nnGNDfqrtfALK3RaMXFMVrKdmX5XV/DmSMf4qFpu/U/8s7VDw==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.0", "clsx": "^1.2.1", diff --git a/package.json b/package.json index 33881ce989..404bd6c8d0 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.3.0", + "diagram-js": "^11.4.1", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From 202d0a4a2c8319a32a0fe10fc0634eeabce2a128 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 12 Dec 2022 23:49:26 +0100 Subject: [PATCH 208/989] chore(CHANGELOG): update to v11.1.0 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ffd6a00d42..ac76b8f0c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.1.0 + +* `FEAT`: add replace element keyboard binding ([#1785](https://github.com/bpmn-io/bpmn-js/pull/1785)) +* `FEAT`: add `replaceElement` editor action ([#1785](https://github.com/bpmn-io/bpmn-js/pull/1785)) +* `DEPS`: update to `diagram-js@11.4.1` + ## 11.0.5 * `DEPS`: update to `diagram-js@11.3.0` From 2d855ddae5012a9ac6fa4f5484d23cbe50eb7930 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 12 Dec 2022 23:57:27 +0100 Subject: [PATCH 209/989] 11.1.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index abae525f31..99b30fc70e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.0.5", + "version": "11.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.0.5", + "version": "11.1.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 404bd6c8d0..d9c128bbd5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.0.5", + "version": "11.1.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From c40efcdb63110dd10b9fcc533d34bea3e9e466c1 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 19 Dec 2022 11:24:39 +0100 Subject: [PATCH 210/989] chore: bump puppeteer --- package-lock.json | 119 +++++++++++++++++----------------------------- package.json | 2 +- 2 files changed, 45 insertions(+), 76 deletions(-) diff --git a/package-lock.json b/package-lock.json index 99b30fc70e..fd855deddf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "mocha": "^10.1.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", - "puppeteer": "^19.3.0", + "puppeteer": "^19.4.1", "rollup": "^2.79.1", "rollup-plugin-license": "^2.9.1", "sinon": "^15.0.0", @@ -1101,12 +1101,6 @@ "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", "dev": true }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -2707,19 +2701,18 @@ } }, "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", "dev": true, "dependencies": { - "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/cpx": { @@ -3082,9 +3075,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1056733", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1056733.tgz", - "integrity": "sha512-CmTu6SQx2g3TbZzDCAV58+LTxVdKplS7xip0g5oDXpZ+isr0rv5dDP8ToyVRywzPHkCCPKgKgScEcwz4uPWDIA==", + "version": "0.0.1068969", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1068969.tgz", + "integrity": "sha512-ATFTrPbY1dKYhPPvpjtwWKSK2mIwGmRwX54UASn9THEuIZCe2n9k3vVuMmt6jWeL+e5QaaguEv/pMyR+JQB7VQ==", "dev": true }, "node_modules/di": { @@ -9462,39 +9455,38 @@ } }, "node_modules/puppeteer": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.3.0.tgz", - "integrity": "sha512-WJbi/ULaeuFOz7cfMgJlJCBAZiyqIFeQ6os4h5ex3PVTt2qosXgwI9eruFZqFAwJRv8x5pOuMhWR0aSRgyDqEg==", + "version": "19.4.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.4.1.tgz", + "integrity": "sha512-PCnrR13B8A+VSEDXRmrNXRZbrkF1tfsI1hKSC7vs13eNS6CUD3Y4FA8SF8/VZy+Pm1kg5AggJT2Nu3HLAtGkFg==", "dev": true, "hasInstallScript": true, "dependencies": { - "cosmiconfig": "7.0.1", - "devtools-protocol": "0.0.1056733", + "cosmiconfig": "8.0.0", "https-proxy-agent": "5.0.1", "progress": "2.0.3", "proxy-from-env": "1.1.0", - "puppeteer-core": "19.3.0" + "puppeteer-core": "19.4.1" }, "engines": { "node": ">=14.1.0" } }, "node_modules/puppeteer-core": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.3.0.tgz", - "integrity": "sha512-P8VAAOBnBJo/7DKJnj1b0K9kZBF2D8lkdL94CjJ+DZKCp182LQqYemPI9omUSZkh4bgykzXjZhaVR1qtddTTQg==", + "version": "19.4.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.4.1.tgz", + "integrity": "sha512-JHIuqtqrUAx4jGOTxXu4ilapV2jabxtVMA/e4wwFUMvtSsqK4nVBSI+Z1SKDoz7gRy/JUIc8WzmfocCa6SIZ1w==", "dev": true, "dependencies": { "cross-fetch": "3.1.5", "debug": "4.3.4", - "devtools-protocol": "0.0.1056733", + "devtools-protocol": "0.0.1068969", "extract-zip": "2.0.1", "https-proxy-agent": "5.0.1", "proxy-from-env": "1.1.0", "rimraf": "3.0.2", "tar-fs": "2.1.1", "unbzip2-stream": "1.4.3", - "ws": "8.10.0" + "ws": "8.11.0" }, "engines": { "node": ">=14.1.0" @@ -12393,9 +12385,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", - "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, "engines": { "node": ">=10.0.0" @@ -12422,15 +12414,6 @@ "node": ">=10" } }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -13277,12 +13260,6 @@ "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", "dev": true }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, "@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -14514,16 +14491,15 @@ } }, "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", "dev": true, "requires": { - "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "path-type": "^4.0.0" } }, "cpx": { @@ -14798,9 +14774,9 @@ "dev": true }, "devtools-protocol": { - "version": "0.0.1056733", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1056733.tgz", - "integrity": "sha512-CmTu6SQx2g3TbZzDCAV58+LTxVdKplS7xip0g5oDXpZ+isr0rv5dDP8ToyVRywzPHkCCPKgKgScEcwz4uPWDIA==", + "version": "0.0.1068969", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1068969.tgz", + "integrity": "sha512-ATFTrPbY1dKYhPPvpjtwWKSK2mIwGmRwX54UASn9THEuIZCe2n9k3vVuMmt6jWeL+e5QaaguEv/pMyR+JQB7VQ==", "dev": true }, "di": { @@ -19601,35 +19577,34 @@ "dev": true }, "puppeteer": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.3.0.tgz", - "integrity": "sha512-WJbi/ULaeuFOz7cfMgJlJCBAZiyqIFeQ6os4h5ex3PVTt2qosXgwI9eruFZqFAwJRv8x5pOuMhWR0aSRgyDqEg==", + "version": "19.4.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.4.1.tgz", + "integrity": "sha512-PCnrR13B8A+VSEDXRmrNXRZbrkF1tfsI1hKSC7vs13eNS6CUD3Y4FA8SF8/VZy+Pm1kg5AggJT2Nu3HLAtGkFg==", "dev": true, "requires": { - "cosmiconfig": "7.0.1", - "devtools-protocol": "0.0.1056733", + "cosmiconfig": "8.0.0", "https-proxy-agent": "5.0.1", "progress": "2.0.3", "proxy-from-env": "1.1.0", - "puppeteer-core": "19.3.0" + "puppeteer-core": "19.4.1" } }, "puppeteer-core": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.3.0.tgz", - "integrity": "sha512-P8VAAOBnBJo/7DKJnj1b0K9kZBF2D8lkdL94CjJ+DZKCp182LQqYemPI9omUSZkh4bgykzXjZhaVR1qtddTTQg==", + "version": "19.4.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.4.1.tgz", + "integrity": "sha512-JHIuqtqrUAx4jGOTxXu4ilapV2jabxtVMA/e4wwFUMvtSsqK4nVBSI+Z1SKDoz7gRy/JUIc8WzmfocCa6SIZ1w==", "dev": true, "requires": { "cross-fetch": "3.1.5", "debug": "4.3.4", - "devtools-protocol": "0.0.1056733", + "devtools-protocol": "0.0.1068969", "extract-zip": "2.0.1", "https-proxy-agent": "5.0.1", "proxy-from-env": "1.1.0", "rimraf": "3.0.2", "tar-fs": "2.1.1", "unbzip2-stream": "1.4.3", - "ws": "8.10.0" + "ws": "8.11.0" }, "dependencies": { "debug": { @@ -21849,9 +21824,9 @@ "dev": true }, "ws": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", - "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, "requires": {} }, @@ -21861,12 +21836,6 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", diff --git a/package.json b/package.json index d9c128bbd5..8fd25f3821 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "mocha": "^10.1.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", - "puppeteer": "^19.3.0", + "puppeteer": "^19.4.1", "rollup": "^2.79.1", "rollup-plugin-license": "^2.9.1", "sinon": "^15.0.0", From ca4559fa7317ebdb21c243e2f757c3631fc5370e Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 6 Jan 2023 12:58:05 +0100 Subject: [PATCH 211/989] deps: patch bump diagram-js + min-dom Closes https://github.com/bpmn-io/bpmn-js/issues/1795 --- package-lock.json | 60 +++++++++++++++++++---------------------------- package.json | 4 ++-- 2 files changed, 26 insertions(+), 38 deletions(-) diff --git a/package-lock.json b/package-lock.json index fd855deddf..c5730873f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,12 +11,12 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.4.1", + "diagram-js": "^11.4.3", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", "min-dash": "^4.0.0", - "min-dom": "^4.0.2", + "min-dom": "^4.0.3", "object-refs": "^0.3.0", "tiny-svg": "^3.0.0" }, @@ -463,9 +463,9 @@ } }, "node_modules/@bpmn-io/diagram-js-ui": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.0.tgz", - "integrity": "sha512-5uP4xgJHynGwq5SsyzzEGdRdhFUu/jfh/0tfcxH/K+W2TE7cdBde45kQdh601xzvCet+RrL8PY82uxs5D0d7qA==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.1.tgz", + "integrity": "sha512-8opVJ0MTc2T6T0/8mVSmnBvdIyYjygSahLZ394A9YprjuCoqnfhxQ4TKZ/M/oN2ynvGt6N2mQv6SOGnRhqUovA==", "dependencies": { "htm": "^3.1.1", "preact": "^10.11.2" @@ -3087,11 +3087,11 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.4.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.4.1.tgz", - "integrity": "sha512-JYVNwoGZY1Zi/2LoXpPUBLu9dGgEzWNqK4yH6nnGNDfqrtfALK3RaMXFMVrKdmX5XV/DmSMf4qFpu/U/8s7VDw==", + "version": "11.4.3", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.4.3.tgz", + "integrity": "sha512-NbpqdcBQthcLiffhYghN8nsZOLEOMKcNnV19OUK0OG4XKDecYazcvOl6kcRFu29+/k4bmU+hkXY/fQylDpqd3A==", "dependencies": { - "@bpmn-io/diagram-js-ui": "^0.2.0", + "@bpmn-io/diagram-js-ui": "^0.2.1", "clsx": "^1.2.1", "css.escape": "^1.5.1", "didi": "^9.0.0", @@ -7680,20 +7680,15 @@ "integrity": "sha512-piIvVJ/nxuA4+LpnYIzF6oCtRvdtDvQJteSC+H768H2UvPKFKIt5oiJnUVtr0ZdchneXTcvUZ91vIrvWVIN0AA==" }, "node_modules/min-dom": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.0.2.tgz", - "integrity": "sha512-zOlfZJ/mfgHKnmfAdZdNEaELq52z6Q8kWNZzupPv4aKLdpc67Uq6tCDAo/UIm1MKZrJIok7XMjRrYctG/jtqGw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.0.3.tgz", + "integrity": "sha512-5zQyCMe8rtGiDIRjfGeqnF2YPJ7OAPFdJQeC7MakHais3dh4VG4PV2a0FacziKTzJjYK5qnPKm2sq1wSXB1wTQ==", "dependencies": { "component-event": "^0.1.4", "domify": "^1.4.1", - "min-dash": "^3.8.1" + "min-dash": "^4.0.0" } }, - "node_modules/min-dom/node_modules/min-dash": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", - "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -12778,9 +12773,9 @@ } }, "@bpmn-io/diagram-js-ui": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.0.tgz", - "integrity": "sha512-5uP4xgJHynGwq5SsyzzEGdRdhFUu/jfh/0tfcxH/K+W2TE7cdBde45kQdh601xzvCet+RrL8PY82uxs5D0d7qA==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.1.tgz", + "integrity": "sha512-8opVJ0MTc2T6T0/8mVSmnBvdIyYjygSahLZ394A9YprjuCoqnfhxQ4TKZ/M/oN2ynvGt6N2mQv6SOGnRhqUovA==", "requires": { "htm": "^3.1.1", "preact": "^10.11.2" @@ -14786,11 +14781,11 @@ "dev": true }, "diagram-js": { - "version": "11.4.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.4.1.tgz", - "integrity": "sha512-JYVNwoGZY1Zi/2LoXpPUBLu9dGgEzWNqK4yH6nnGNDfqrtfALK3RaMXFMVrKdmX5XV/DmSMf4qFpu/U/8s7VDw==", + "version": "11.4.3", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.4.3.tgz", + "integrity": "sha512-NbpqdcBQthcLiffhYghN8nsZOLEOMKcNnV19OUK0OG4XKDecYazcvOl6kcRFu29+/k4bmU+hkXY/fQylDpqd3A==", "requires": { - "@bpmn-io/diagram-js-ui": "^0.2.0", + "@bpmn-io/diagram-js-ui": "^0.2.1", "clsx": "^1.2.1", "css.escape": "^1.5.1", "didi": "^9.0.0", @@ -18263,20 +18258,13 @@ "integrity": "sha512-piIvVJ/nxuA4+LpnYIzF6oCtRvdtDvQJteSC+H768H2UvPKFKIt5oiJnUVtr0ZdchneXTcvUZ91vIrvWVIN0AA==" }, "min-dom": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.0.2.tgz", - "integrity": "sha512-zOlfZJ/mfgHKnmfAdZdNEaELq52z6Q8kWNZzupPv4aKLdpc67Uq6tCDAo/UIm1MKZrJIok7XMjRrYctG/jtqGw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.0.3.tgz", + "integrity": "sha512-5zQyCMe8rtGiDIRjfGeqnF2YPJ7OAPFdJQeC7MakHais3dh4VG4PV2a0FacziKTzJjYK5qnPKm2sq1wSXB1wTQ==", "requires": { "component-event": "^0.1.4", "domify": "^1.4.1", - "min-dash": "^3.8.1" - }, - "dependencies": { - "min-dash": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", - "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==" - } + "min-dash": "^4.0.0" } }, "minimatch": { diff --git a/package.json b/package.json index 8fd25f3821..daf53e10c3 100644 --- a/package.json +++ b/package.json @@ -97,12 +97,12 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.4.1", + "diagram-js": "^11.4.3", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", "min-dash": "^4.0.0", - "min-dom": "^4.0.2", + "min-dom": "^4.0.3", "object-refs": "^0.3.0", "tiny-svg": "^3.0.0" } From df12b81e27c4caaa98154decc35af498c12fd7e3 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 6 Jan 2023 15:01:04 +0100 Subject: [PATCH 212/989] chore(CHANGELOG): update to v11.1.1 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac76b8f0c2..6473213e4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.1.1 + +* `FIX`: correct popup menu display in fullscreen ([#1795](https://github.com/bpmn-io/bpmn-js/issues/1795)) +* `DEPS`: update to `diagram-js@11.4.3` + ## 11.1.0 * `FEAT`: add replace element keyboard binding ([#1785](https://github.com/bpmn-io/bpmn-js/pull/1785)) From 603fbba7f6a65a8f55e82b931bb3570b8341f437 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 6 Jan 2023 15:02:37 +0100 Subject: [PATCH 213/989] 11.1.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c5730873f9..47017830f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.1.0", + "version": "11.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.1.0", + "version": "11.1.1", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index daf53e10c3..251af89389 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.1.0", + "version": "11.1.1", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 0747f492a4dbd6070b1e9f0118ca4b3de8207d67 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 08:31:52 +0000 Subject: [PATCH 214/989] chore: update dependency eslint-plugin-bpmn-io to v1 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 47017830f4..d6fcec8b7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,7 @@ "cross-env": "^7.0.3", "del": "^6.0.0", "eslint": "^8.22.0", - "eslint-plugin-bpmn-io": "^0.16.0", + "eslint-plugin-bpmn-io": "^1.0.0", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", "file-drops": "^0.4.0", @@ -3515,9 +3515,9 @@ "dev": true }, "node_modules/eslint-plugin-bpmn-io": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.16.0.tgz", - "integrity": "sha512-33lxw01ombcLWX5gEGpnqKh7DXbTdBh6CWlmkfCwTGFqklndvrP7qemZczO8Sg0mMlQiF7Eu17Zlv7etwX2BIg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-1.0.0.tgz", + "integrity": "sha512-nGQMWR14MfYKV1njOD9B1ddCj3coH1uNJ167SeqRsQ0FunK7PvRqbT+3sxMck6gTjqUXmBIGPoM39mp/Z0Oc0w==", "dev": true, "dependencies": { "eslint-plugin-mocha": "^10.1.0", @@ -15400,9 +15400,9 @@ } }, "eslint-plugin-bpmn-io": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.16.0.tgz", - "integrity": "sha512-33lxw01ombcLWX5gEGpnqKh7DXbTdBh6CWlmkfCwTGFqklndvrP7qemZczO8Sg0mMlQiF7Eu17Zlv7etwX2BIg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-1.0.0.tgz", + "integrity": "sha512-nGQMWR14MfYKV1njOD9B1ddCj3coH1uNJ167SeqRsQ0FunK7PvRqbT+3sxMck6gTjqUXmBIGPoM39mp/Z0Oc0w==", "dev": true, "requires": { "eslint-plugin-mocha": "^10.1.0", diff --git a/package.json b/package.json index 251af89389..eb8c608f44 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "cross-env": "^7.0.3", "del": "^6.0.0", "eslint": "^8.22.0", - "eslint-plugin-bpmn-io": "^0.16.0", + "eslint-plugin-bpmn-io": "^1.0.0", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", "file-drops": "^0.4.0", From 39dd936a9126877cec435f4d17b9db072ecd049a Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Fri, 13 Jan 2023 09:58:34 +0100 Subject: [PATCH 215/989] fix(element-factory): add missing attributes --- lib/features/modeling/ElementFactory.js | 11 +++++++ .../features/modeling/ElementFactorySpec.js | 31 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index 3b97c553c2..e09b055747 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -1,6 +1,7 @@ import { assign, forEach, + isDefined, isObject, omit } from 'min-dash'; @@ -127,6 +128,16 @@ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { di.isMarkerVisible = true; } + if (isDefined(attrs.triggeredByEvent)) { + businessObject.triggeredByEvent = attrs.triggeredByEvent; + delete attrs.triggeredByEvent; + } + + if (isDefined(attrs.cancelActivity)) { + businessObject.cancelActivity = attrs.cancelActivity; + delete attrs.cancelActivity; + } + var eventDefinitions, newEventDefinition; diff --git a/test/spec/features/modeling/ElementFactorySpec.js b/test/spec/features/modeling/ElementFactorySpec.js index fcc8b5aed4..9779190591 100644 --- a/test/spec/features/modeling/ElementFactorySpec.js +++ b/test/spec/features/modeling/ElementFactorySpec.js @@ -176,6 +176,37 @@ describe('features - element factory', function() { })); + 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; + })); + + describe('integration', function() { it('should create event definition with ID', inject(function(elementFactory) { From a7894ca541998e1021506833171294ec5044b61d Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 18 Jan 2023 13:01:55 +0100 Subject: [PATCH 216/989] ci: skip test consistently failing on MacOS Already covered across different OS. --- test/spec/features/replace-preview/BpmnReplacePreviewSpec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js b/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js index c1f95cf485..b5f3ad352e 100644 --- a/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js +++ b/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js @@ -116,7 +116,7 @@ describe('features/replace-preview', function() { })); - it('should remove dragger from context.visualReplacements', inject( + skipCI('Mac OS') && it('should remove dragger from context.visualReplacements', inject( function(elementRegistry, dragging) { // given From 6b997fdbd1df050dbdddfbee25df3b80cbf71732 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 18 Jan 2023 10:08:36 +0100 Subject: [PATCH 217/989] deps: update to diagram-js@11.5.0 --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index d6fcec8b7c..c9fd83fb8e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.4.3", + "diagram-js": "^11.5.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -463,9 +463,9 @@ } }, "node_modules/@bpmn-io/diagram-js-ui": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.1.tgz", - "integrity": "sha512-8opVJ0MTc2T6T0/8mVSmnBvdIyYjygSahLZ394A9YprjuCoqnfhxQ4TKZ/M/oN2ynvGt6N2mQv6SOGnRhqUovA==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.2.tgz", + "integrity": "sha512-IgOIxOwoqsFB2mMPdXtcbPVPjdYkZ3huW7ipowYLhg5jdRGHlBronQ+LER+lfWro6sPtzEsw7qX8D8Yq9M2S5g==", "dependencies": { "htm": "^3.1.1", "preact": "^10.11.2" @@ -3087,11 +3087,11 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.4.3", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.4.3.tgz", - "integrity": "sha512-NbpqdcBQthcLiffhYghN8nsZOLEOMKcNnV19OUK0OG4XKDecYazcvOl6kcRFu29+/k4bmU+hkXY/fQylDpqd3A==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.5.0.tgz", + "integrity": "sha512-lO5Ux1Heh6yM+uPytRn3gh92c5mjIFnLPEKoLsKGigUtpw8bXtFRByv1raSava+FR7l8F5iLV+v6kRrI9mTbzQ==", "dependencies": { - "@bpmn-io/diagram-js-ui": "^0.2.1", + "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", "css.escape": "^1.5.1", "didi": "^9.0.0", @@ -12773,9 +12773,9 @@ } }, "@bpmn-io/diagram-js-ui": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.1.tgz", - "integrity": "sha512-8opVJ0MTc2T6T0/8mVSmnBvdIyYjygSahLZ394A9YprjuCoqnfhxQ4TKZ/M/oN2ynvGt6N2mQv6SOGnRhqUovA==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.2.tgz", + "integrity": "sha512-IgOIxOwoqsFB2mMPdXtcbPVPjdYkZ3huW7ipowYLhg5jdRGHlBronQ+LER+lfWro6sPtzEsw7qX8D8Yq9M2S5g==", "requires": { "htm": "^3.1.1", "preact": "^10.11.2" @@ -14781,11 +14781,11 @@ "dev": true }, "diagram-js": { - "version": "11.4.3", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.4.3.tgz", - "integrity": "sha512-NbpqdcBQthcLiffhYghN8nsZOLEOMKcNnV19OUK0OG4XKDecYazcvOl6kcRFu29+/k4bmU+hkXY/fQylDpqd3A==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.5.0.tgz", + "integrity": "sha512-lO5Ux1Heh6yM+uPytRn3gh92c5mjIFnLPEKoLsKGigUtpw8bXtFRByv1raSava+FR7l8F5iLV+v6kRrI9mTbzQ==", "requires": { - "@bpmn-io/diagram-js-ui": "^0.2.1", + "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", "css.escape": "^1.5.1", "didi": "^9.0.0", diff --git a/package.json b/package.json index eb8c608f44..a4efc2f446 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.4.3", + "diagram-js": "^11.5.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From 49383f4a60866692c2fcfeca86195933ba2e0a33 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 10 Jan 2023 16:06:19 +0100 Subject: [PATCH 218/989] feat(popup-menu): add append provider --- lib/features/popup-menu/AppendMenuProvider.js | 171 +++++ lib/features/popup-menu/index.js | 14 +- lib/features/popup-menu/util/OptionsUtil.js | 612 ++++++++++++++++++ lib/features/rules/BpmnRules.js | 31 + .../popup-menu/AppendMenuProvider.bpmn | 44 ++ .../popup-menu/AppendMenuProviderSpec.js | 573 ++++++++++++++++ test/spec/features/rules/BpmnRulesSpec.js | 69 ++ 7 files changed, 1510 insertions(+), 4 deletions(-) create mode 100644 lib/features/popup-menu/AppendMenuProvider.js create mode 100644 lib/features/popup-menu/util/OptionsUtil.js create mode 100644 test/spec/features/popup-menu/AppendMenuProvider.bpmn create mode 100644 test/spec/features/popup-menu/AppendMenuProviderSpec.js diff --git a/lib/features/popup-menu/AppendMenuProvider.js b/lib/features/popup-menu/AppendMenuProvider.js new file mode 100644 index 0000000000..91dd0a1c27 --- /dev/null +++ b/lib/features/popup-menu/AppendMenuProvider.js @@ -0,0 +1,171 @@ +import { isUndefined } from 'min-dash'; +import { CREATE_OPTIONS } from './util/OptionsUtil'; + +/** + * This module is an append menu provider for the popup menu. + */ +export default function AppendMenuProvider( + elementFactory, + popupMenu, + create, + autoPlace, + rules, + mouse +) { + this._elementFactory = elementFactory; + this._popupMenu = popupMenu; + this._create = create; + this._autoPlace = autoPlace; + this._rules = rules; + this._create = create; + this._mouse = mouse; + + this.register(); +} + +AppendMenuProvider.$inject = [ + 'elementFactory', + 'popupMenu', + 'create', + 'autoPlace', + 'rules', + 'mouse' +]; + +/** + * Register append menu provider in the popup menu + */ +AppendMenuProvider.prototype.register = function() { + this._popupMenu.registerProvider('bpmn-append', this); +}; + +/** + * Get all entries from createOptions for the given element. + * + * @param {djs.model.Base} element + * + * @return {Array} a list of menu entry items + */ +AppendMenuProvider.prototype.getPopupMenuEntries = function(element) { + const rules = this._rules; + const entries = {}; + + if (!rules.allowed('shape.append', { element: element })) { + return []; + } + + // filter out elements with no incoming connections + const appendOptions = this._filterEntries(CREATE_OPTIONS); + + // map options to menu entries + appendOptions.forEach(option => { + const { + actionName, + className, + label, + target, + description, + group, + search + } = option; + + entries[`append-${actionName}`] = { + label, + className, + description, + group, + search, + action: this._createEntryAction(element, target) + }; + }); + + return entries; +}; + +/** + * Filter out entries from the options. + * + * @param {Array} entries + * + * @return {Array} filtered entries + */ +AppendMenuProvider.prototype._filterEntries = function(entries) { + return entries.filter(option => { + + const target = option.target; + const { + type, + eventDefinitionType + } = target; + + if ([ + 'bpmn:StartEvent', + 'bpmn:Participant' + ].includes(type)) { + return false; + } + + if (type === 'bpmn:BoundaryEvent' && isUndefined(eventDefinitionType)) { + return false; + } + + return true; + }); +}; + +/** + * Create an action for a given target. + * + * @param {djs.model.Base} element + * @param {Object} target + * + * @return {Object} + */ +AppendMenuProvider.prototype._createEntryAction = function(element, target) { + const elementFactory = this._elementFactory; + const autoPlace = this._autoPlace; + const create = this._create; + const mouse = this._mouse; + + + const autoPlaceElement = () => { + const newElement = elementFactory.create('shape', target); + autoPlace.append(element, newElement); + }; + + const manualPlaceElement = () => { + const newElement = elementFactory.create('shape', target); + const event = mouse.getLastMoveEvent(); + return create.start(event, newElement); + }; + + return { + click: this._canAutoPlaceElement(target) ? autoPlaceElement : manualPlaceElement, + dragstart: manualPlaceElement + }; +}; + +/** + * Check if the element should be auto placed. + * + * @param {Object} target + * + * @return {Boolean} + */ +AppendMenuProvider.prototype._canAutoPlaceElement = (target) => { + const { type } = target; + + if (type === 'bpmn:BoundaryEvent') { + return false; + } + + if (type === 'bpmn:SubProcess' && target.triggeredByEvent) { + return false; + } + + if (type === 'bpmn:IntermediateCatchEvent' && target.eventDefinitionType === 'bpmn:LinkEventDefinition') { + return false; + } + + return true; +}; \ No newline at end of file diff --git a/lib/features/popup-menu/index.js b/lib/features/popup-menu/index.js index decb9b5cfe..d10e2f2ebb 100644 --- a/lib/features/popup-menu/index.js +++ b/lib/features/popup-menu/index.js @@ -2,13 +2,19 @@ import PopupMenuModule from 'diagram-js/lib/features/popup-menu'; import ReplaceModule from '../replace'; import ReplaceMenuProvider from './ReplaceMenuProvider'; - +import AppendMenuProvider from './AppendMenuProvider'; +import AutoPlaceModule from '../auto-place'; export default { __depends__: [ PopupMenuModule, - ReplaceModule + ReplaceModule, + AutoPlaceModule + ], + __init__: [ + 'replaceMenuProvider', + 'appendMenuProvider' ], - __init__: [ 'replaceMenuProvider' ], - replaceMenuProvider: [ 'type', ReplaceMenuProvider ] + replaceMenuProvider: [ 'type', ReplaceMenuProvider ], + appendMenuProvider: [ 'type', AppendMenuProvider ] }; \ No newline at end of file diff --git a/lib/features/popup-menu/util/OptionsUtil.js b/lib/features/popup-menu/util/OptionsUtil.js new file mode 100644 index 0000000000..7f58a87b48 --- /dev/null +++ b/lib/features/popup-menu/util/OptionsUtil.js @@ -0,0 +1,612 @@ +export var EVENT_GROUP = { + id: 'events', + name: 'Events' +}; + +export var TASK_GROUP = { + id: 'tasks', + name: 'Tasks' +}; + +export var DATA_GROUP = { + id: 'data', + name: 'Data' +}; + +export var PARTICIPANT_GROUP = { + id: 'participants', + name: 'Participants' +}; + +export var SUBPROCESS_GROUP = { + id: 'subprocess', + name: 'Sub Processes' +}; + +export var GATEWAY_GROUP = { + id: 'gateways', + name: 'Gateways' +}; + +export var NONE_EVENTS = [ + { + label: 'Start Event', + actionName: 'none-start-event', + className: 'bpmn-icon-start-event-none', + target: { + type: 'bpmn:StartEvent' + } + }, + { + label: 'Intermediate Throw Event', + actionName: 'none-intermediate-throwing', + className: 'bpmn-icon-intermediate-event-none', + target: { + type: 'bpmn:IntermediateThrowEvent' + } + }, + { + label: 'Boundary Event', + actionName: 'none-boundary-event', + className: 'bpmn-icon-intermediate-event-none', + target: { + type: 'bpmn:BoundaryEvent' + } + }, + { + label: 'End Event', + actionName: 'none-end-event', + className: 'bpmn-icon-end-event-none', + target: { + type: 'bpmn:EndEvent' + } + } +].map(option => ({ ...option, group: EVENT_GROUP })); + +export var TYPED_START_EVENTS = [ + { + label: 'Message Start Event', + actionName: 'message-start', + className: 'bpmn-icon-start-event-message', + target: { + type: 'bpmn:StartEvent', + eventDefinitionType: 'bpmn:MessageEventDefinition' + } + }, + { + label: 'Timer Start Event', + actionName: 'timer-start', + className: 'bpmn-icon-start-event-timer', + target: { + type: 'bpmn:StartEvent', + eventDefinitionType: 'bpmn:TimerEventDefinition' + } + }, + { + label: 'Conditional Start Event', + actionName: 'conditional-start', + className: 'bpmn-icon-start-event-condition', + target: { + type: 'bpmn:StartEvent', + eventDefinitionType: 'bpmn:ConditionalEventDefinition' + } + }, + { + label: 'Signal Start Event', + actionName: 'signal-start', + className: 'bpmn-icon-start-event-signal', + target: { + type: 'bpmn:StartEvent', + eventDefinitionType: 'bpmn:SignalEventDefinition' + } + } +].map(option => ({ ...option, group: EVENT_GROUP })); + +export var TYPED_INTERMEDIATE_EVENT = [ + { + label: 'Message Intermediate Catch Event', + actionName: 'message-intermediate-catch', + className: 'bpmn-icon-intermediate-event-catch-message', + target: { + type: 'bpmn:IntermediateCatchEvent', + eventDefinitionType: 'bpmn:MessageEventDefinition' + } + }, + { + label: 'Message Intermediate Throw Event', + actionName: 'message-intermediate-throw', + className: 'bpmn-icon-intermediate-event-throw-message', + target: { + type: 'bpmn:IntermediateThrowEvent', + eventDefinitionType: 'bpmn:MessageEventDefinition' + } + }, + { + label: 'Timer Intermediate Catch Event', + actionName: 'timer-intermediate-catch', + className: 'bpmn-icon-intermediate-event-catch-timer', + target: { + type: 'bpmn:IntermediateCatchEvent', + eventDefinitionType: 'bpmn:TimerEventDefinition' + } + }, + { + label: 'Escalation Intermediate Throw Event', + actionName: 'escalation-intermediate-throw', + className: 'bpmn-icon-intermediate-event-throw-escalation', + target: { + type: 'bpmn:IntermediateThrowEvent', + eventDefinitionType: 'bpmn:EscalationEventDefinition' + } + }, + { + label: 'Conditional Intermediate Catch Event', + actionName: 'conditional-intermediate-catch', + className: 'bpmn-icon-intermediate-event-catch-condition', + target: { + type: 'bpmn:IntermediateCatchEvent', + eventDefinitionType: 'bpmn:ConditionalEventDefinition' + } + }, + { + label: 'Link Intermediate Catch Event', + actionName: 'link-intermediate-catch', + className: 'bpmn-icon-intermediate-event-catch-link', + target: { + type: 'bpmn:IntermediateCatchEvent', + eventDefinitionType: 'bpmn:LinkEventDefinition', + eventDefinitionAttrs: { + name: '' + } + } + }, + { + label: 'Link Intermediate Throw Event', + actionName: 'link-intermediate-throw', + className: 'bpmn-icon-intermediate-event-throw-link', + target: { + type: 'bpmn:IntermediateThrowEvent', + eventDefinitionType: 'bpmn:LinkEventDefinition', + eventDefinitionAttrs: { + name: '' + } + } + }, + { + label: 'Compensation Intermediate Throw Event', + actionName: 'compensation-intermediate-throw', + className: 'bpmn-icon-intermediate-event-throw-compensation', + target: { + type: 'bpmn:IntermediateThrowEvent', + eventDefinitionType: 'bpmn:CompensateEventDefinition' + } + }, + { + label: 'Signal Intermediate Catch Event', + actionName: 'signal-intermediate-catch', + className: 'bpmn-icon-intermediate-event-catch-signal', + target: { + type: 'bpmn:IntermediateCatchEvent', + eventDefinitionType: 'bpmn:SignalEventDefinition' + } + }, + { + label: 'Signal Intermediate Throw Event', + actionName: 'signal-intermediate-throw', + className: 'bpmn-icon-intermediate-event-throw-signal', + target: { + type: 'bpmn:IntermediateThrowEvent', + eventDefinitionType: 'bpmn:SignalEventDefinition' + } + } +].map(option => ({ ...option, group: EVENT_GROUP })); + +export var TYPED_BOUNDARY_EVENT = [ + { + label: 'Message Boundary Event', + actionName: 'message-boundary', + className: 'bpmn-icon-intermediate-event-catch-message', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:MessageEventDefinition' + } + }, + { + label: 'Timer Boundary Event', + actionName: 'timer-boundary', + className: 'bpmn-icon-intermediate-event-catch-timer', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:TimerEventDefinition' + } + }, + { + label: 'Escalation Boundary Event', + actionName: 'escalation-boundary', + className: 'bpmn-icon-intermediate-event-catch-escalation', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:EscalationEventDefinition' + } + }, + { + label: 'Conditional Boundary Event', + actionName: 'conditional-boundary', + className: 'bpmn-icon-intermediate-event-catch-condition', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:ConditionalEventDefinition' + } + }, + { + label: 'Error Boundary Event', + actionName: 'error-boundary', + className: 'bpmn-icon-intermediate-event-catch-error', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:ErrorEventDefinition' + } + }, + { + label: 'Cancel Boundary Event', + actionName: 'cancel-boundary', + className: 'bpmn-icon-intermediate-event-catch-cancel', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:CancelEventDefinition' + } + }, + { + label: 'Signal Boundary Event', + actionName: 'signal-boundary', + className: 'bpmn-icon-intermediate-event-catch-signal', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:SignalEventDefinition' + } + }, + { + label: 'Compensation Boundary Event', + actionName: 'compensation-boundary', + className: 'bpmn-icon-intermediate-event-catch-compensation', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:CompensateEventDefinition' + } + }, + { + label: 'Message Boundary Event (non-interrupting)', + actionName: 'non-interrupting-message-boundary', + className: 'bpmn-icon-intermediate-event-catch-non-interrupting-message', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:MessageEventDefinition', + cancelActivity: false + } + }, + { + label: 'Timer Boundary Event (non-interrupting)', + actionName: 'non-interrupting-timer-boundary', + className: 'bpmn-icon-intermediate-event-catch-non-interrupting-timer', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:TimerEventDefinition', + cancelActivity: false + } + }, + { + label: 'Escalation Boundary Event (non-interrupting)', + actionName: 'non-interrupting-escalation-boundary', + className: 'bpmn-icon-intermediate-event-catch-non-interrupting-escalation', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:EscalationEventDefinition', + cancelActivity: false + } + }, + { + label: 'Conditional Boundary Event (non-interrupting)', + actionName: 'non-interrupting-conditional-boundary', + className: 'bpmn-icon-intermediate-event-catch-non-interrupting-condition', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:ConditionalEventDefinition', + cancelActivity: false + } + }, + { + label: 'Signal Boundary Event (non-interrupting)', + actionName: 'non-interrupting-signal-boundary', + className: 'bpmn-icon-intermediate-event-catch-non-interrupting-signal', + target: { + type: 'bpmn:BoundaryEvent', + eventDefinitionType: 'bpmn:SignalEventDefinition', + cancelActivity: false + } + } +].map(option => ({ ...option, group: EVENT_GROUP })); + +export var TYPED_END_EVENT = [ + { + label: 'Message End Event', + actionName: 'message-end', + className: 'bpmn-icon-end-event-message', + target: { + type: 'bpmn:EndEvent', + eventDefinitionType: 'bpmn:MessageEventDefinition' + } + }, + { + label: 'Escalation End Event', + actionName: 'escalation-end', + className: 'bpmn-icon-end-event-escalation', + target: { + type: 'bpmn:EndEvent', + eventDefinitionType: 'bpmn:EscalationEventDefinition' + } + }, + { + label: 'Error End Event', + actionName: 'error-end', + className: 'bpmn-icon-end-event-error', + target: { + type: 'bpmn:EndEvent', + eventDefinitionType: 'bpmn:ErrorEventDefinition' + } + }, + { + label: 'Cancel End Event', + actionName: 'cancel-end', + className: 'bpmn-icon-end-event-cancel', + target: { + type: 'bpmn:EndEvent', + eventDefinitionType: 'bpmn:CancelEventDefinition' + } + }, + { + label: 'Compensation End Event', + actionName: 'compensation-end', + className: 'bpmn-icon-end-event-compensation', + target: { + type: 'bpmn:EndEvent', + eventDefinitionType: 'bpmn:CompensateEventDefinition' + } + }, + { + label: 'Signal End Event', + actionName: 'signal-end', + className: 'bpmn-icon-end-event-signal', + target: { + type: 'bpmn:EndEvent', + eventDefinitionType: 'bpmn:SignalEventDefinition' + } + }, + { + label: 'Terminate End Event', + actionName: 'terminate-end', + className: 'bpmn-icon-end-event-terminate', + target: { + type: 'bpmn:EndEvent', + eventDefinitionType: 'bpmn:TerminateEventDefinition' + } + } +].map(option => ({ ...option, group: EVENT_GROUP })); + +export var GATEWAY = [ + { + label: 'Exclusive Gateway', + actionName: 'exclusive-gateway', + className: 'bpmn-icon-gateway-xor', + target: { + type: 'bpmn:ExclusiveGateway' + } + }, + { + label: 'Parallel Gateway', + actionName: 'parallel-gateway', + className: 'bpmn-icon-gateway-parallel', + target: { + type: 'bpmn:ParallelGateway' + } + }, + { + label: 'Inclusive Gateway', + search: 'or', + actionName: 'inclusive-gateway', + className: 'bpmn-icon-gateway-or', + target: { + type: 'bpmn:InclusiveGateway' + } + }, + { + label: 'Complex Gateway', + actionName: 'complex-gateway', + className: 'bpmn-icon-gateway-complex', + target: { + type: 'bpmn:ComplexGateway' + } + }, + { + label: 'Event based Gateway', + actionName: 'event-based-gateway', + className: 'bpmn-icon-gateway-eventbased', + target: { + type: 'bpmn:EventBasedGateway', + instantiate: false, + eventGatewayType: 'Exclusive' + } + } +].map(option => ({ ...option, group: GATEWAY_GROUP })); + +export var SUBPROCESS = [ + { + label: 'Transaction', + actionName: 'transaction', + className: 'bpmn-icon-transaction', + target: { + type: 'bpmn:Transaction', + isExpanded: true + } + }, + { + label: 'Event Sub Process', + search: 'subprocess', + actionName: 'event-subprocess', + className: 'bpmn-icon-event-subprocess-expanded', + target: { + type: 'bpmn:SubProcess', + triggeredByEvent: true, + isExpanded: true + } + }, + { + label: 'Sub Process (collapsed)', + search: 'subprocess', + actionName: 'collapsed-subprocess', + className: 'bpmn-icon-subprocess-collapsed', + target: { + type: 'bpmn:SubProcess', + isExpanded: false + } + }, + { + label: 'Sub Process (expanded)', + search: 'subprocess', + actionName: 'expanded-subprocess', + className: 'bpmn-icon-subprocess-collapsed', + target: { + type: 'bpmn:SubProcess', + isExpanded: true + } + } +].map(option => ({ ...option, group: SUBPROCESS_GROUP })); + +export var TASK = [ + { + label: 'Task', + actionName: 'task', + className: 'bpmn-icon-task', + target: { + type: 'bpmn:Task' + } + }, + { + label: 'Send Task', + actionName: 'send-task', + className: 'bpmn-icon-send', + target: { + type: 'bpmn:SendTask' + } + }, + { + label: 'Receive Task', + actionName: 'receive-task', + className: 'bpmn-icon-receive', + target: { + type: 'bpmn:ReceiveTask' + } + }, + { + label: 'User Task', + actionName: 'user-task', + className: 'bpmn-icon-user', + target: { + type: 'bpmn:UserTask' + } + }, + { + label: 'Manual Task', + actionName: 'manual-task', + className: 'bpmn-icon-manual', + target: { + type: 'bpmn:ManualTask' + } + }, + { + label: 'Business Rule Task', + actionName: 'rule-task', + className: 'bpmn-icon-business-rule', + target: { + type: 'bpmn:BusinessRuleTask' + } + }, + { + label: 'Service Task', + actionName: 'service-task', + className: 'bpmn-icon-service', + target: { + type: 'bpmn:ServiceTask' + } + }, + { + label: 'Script Task', + actionName: 'script-task', + className: 'bpmn-icon-script', + target: { + type: 'bpmn:ScriptTask' + } + }, + { + label: 'Call Activity', + actionName: 'call-activity', + className: 'bpmn-icon-call-activity', + target: { + type: 'bpmn:CallActivity' + } + } +].map(option => ({ ...option, group: TASK_GROUP })); + +export var DATA_OBJECTS = [ + { + label: 'Data Store Reference', + actionName: 'data-store-reference', + className: 'bpmn-icon-data-store', + target: { + type: 'bpmn:DataStoreReference' + } + }, + { + label: 'Data Object Reference', + actionName: 'data-object-reference', + className: 'bpmn-icon-data-object', + target: { + type: 'bpmn:DataObjectReference' + } + } +].map(option => ({ ...option, group: DATA_GROUP })); + +export var PARTICIPANT = [ + { + label: 'Expanded Pool', + search: 'Participant', + actionName: 'expanded-pool', + className: 'bpmn-icon-participant', + target: { + type: 'bpmn:Participant', + isExpanded: true + } + }, + { + label: 'Empty Pool', + search: 'Collapsed Participant', + actionName: 'collapsed-pool', + className: 'bpmn-icon-lane', + target: { + type: 'bpmn:Participant', + isExpanded: false + } + } +].map(option => ({ ...option, group: PARTICIPANT_GROUP })); + +export var CREATE_OPTIONS = [ + ...GATEWAY, + ...TASK, + ...SUBPROCESS, + ...NONE_EVENTS, + ...TYPED_START_EVENTS, + ...TYPED_INTERMEDIATE_EVENT, + ...TYPED_END_EVENT, + ...TYPED_BOUNDARY_EVENT, + ...DATA_OBJECTS, + ...PARTICIPANT +]; \ No newline at end of file diff --git a/lib/features/rules/BpmnRules.js b/lib/features/rules/BpmnRules.js index 6b252bdd0c..50578dd474 100644 --- a/lib/features/rules/BpmnRules.js +++ b/lib/features/rules/BpmnRules.js @@ -169,6 +169,11 @@ BpmnRules.prototype.init = function() { return canCopy(elements, element); }); + + this.addRule('shape.append', function(context) { + var element = context.element; + return canAppend(element); + }); }; BpmnRules.prototype.canConnectMessageFlow = canConnectMessageFlow; @@ -801,6 +806,32 @@ function canResize(shape, newBounds) { return false; } +function canAppend(source) { + + const businessObject = getBusinessObject(source); + + if (isAny(source, [ + 'bpmn:EndEvent', + 'bpmn:Group', + 'bpmn:TextAnnotation', + 'bpmn:SequenceFlow', + 'bpmn:Lane', + 'bpmn:Participant', + 'bpmn:DataStoreReference', + 'bpmn:DataObjectReference' + ])) { + return false; + } + + if (is(source, 'bpmn:IntermediateThrowEvent') && hasEventDefinition(source, 'bpmn:LinkEventDefinition')) { + return false; + } + + if (is(source, 'bpmn:SubProcess') && businessObject.triggeredByEvent) { + return false; + } +} + /** * Check, whether one side of the relationship * is a text annotation. diff --git a/test/spec/features/popup-menu/AppendMenuProvider.bpmn b/test/spec/features/popup-menu/AppendMenuProvider.bpmn new file mode 100644 index 0000000000..67702f61f7 --- /dev/null +++ b/test/spec/features/popup-menu/AppendMenuProvider.bpmn @@ -0,0 +1,44 @@ + + + + + + + + Flow_00dqsyf + + + Flow_00dqsyf + Flow_0zr9ajj + + + Flow_0zr9ajj + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/spec/features/popup-menu/AppendMenuProviderSpec.js b/test/spec/features/popup-menu/AppendMenuProviderSpec.js new file mode 100644 index 0000000000..413d2ea404 --- /dev/null +++ b/test/spec/features/popup-menu/AppendMenuProviderSpec.js @@ -0,0 +1,573 @@ +import { + bootstrapModeler, + getBpmnJS, + inject +} from 'test/TestHelper'; + +import { + createEvent as globalEvent +} from '../../../util/MockEvents'; + +import coreModule from 'lib/core'; +import modelingModule from 'lib/features/modeling'; +import autoPlace from 'lib/features/auto-place'; +import appendMenuProvider from 'lib/features/popup-menu'; +import customRulesModule from '../../../util/custom-rules'; + +import { + query as domQuery, + queryAll as domQueryAll +} from 'min-dom'; + +import { getBusinessObject } from 'lib/util/ModelUtil'; + + +describe('features/popup-menu - append menu provider', function() { + + var diagramXML = require('./AppendMenuProvider.bpmn'); + + var testModules = [ + coreModule, + modelingModule, + autoPlace, + appendMenuProvider, + customRulesModule + ]; + + beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); + + + describe('rules', function() { + + it('should get entries by default', inject(function(elementRegistry) { + + // given + var startEvent = elementRegistry.get('StartEvent'); + + // when + openPopup(startEvent); + + // then + expect(queryEntries()).to.have.length.above(0); + })); + + + it('should get entries when custom rule returns true', + inject(function(elementRegistry, customRules) { + + // given + var startEvent = elementRegistry.get('StartEvent'); + + customRules.addRule('shape.append', function() { + return true; + }); + + // when + openPopup(startEvent); + + // then + expect(queryEntries()).to.have.length.above(0); + }) + ); + + + it('should get no entries when custom rule returns false', + inject(function(elementRegistry, customRules) { + + // given + var startEvent = elementRegistry.get('StartEvent'); + + customRules.addRule('shape.append', function() { + return false; + }); + + // when + openPopup(startEvent); + + // then + expect(queryEntries()).to.have.length(0); + }) + ); + + }); + + + describe('menu', function() { + + describe('should not appear as append option', function() { + + it('Start Event', inject(function(elementRegistry) { + + // given + const task = elementRegistry.get('Task'); + + // when + openPopup(task); + + // then + expect(queryEntry('append-none-start')).to.not.exist; + })); + + + it('Participant', inject(function(elementRegistry) { + + // given + const task = elementRegistry.get('Task'); + + // when + openPopup(task); + + // then + expect(queryEntry('append-expanded-pool')).to.not.exist; + })); + + + it('None Boundary Event', inject(function(elementRegistry) { + + // given + const task = elementRegistry.get('Task'); + + // when + openPopup(task); + + // then + expect(queryEntry('append-boundary-event')).to.not.exist; + })); + + }); + + }); + + + describe('append', function() { + + describe('task', function() { + + it('should append', inject(function(elementRegistry) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + + expect(outgoingFlows).to.have.length(1); + + // when + openPopup(startEvent); + triggerAction('append-task'); + + // then + expect(outgoingFlows).to.have.length(2); + })); + + + it('should undo', inject(function(elementRegistry, commandStack) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + + // when + openPopup(startEvent); + triggerAction('append-task'); + + // then + expect(outgoingFlows).to.have.length(2); + + // when + commandStack.undo(); + + // then + expect(outgoingFlows).to.have.length(1); + })); + + + it('should redo', inject(function(elementRegistry, commandStack) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + + // when + openPopup(startEvent); + triggerAction('append-task'); + commandStack.undo(); + + // then + expect(outgoingFlows).to.have.length(1); + + // when + commandStack.redo(); + + // then + expect(outgoingFlows).to.have.length(2); + })); + + }); + + + describe('sub process', function() { + + it('should append', inject(function(elementRegistry) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + + expect(outgoingFlows).to.have.length(1); + + // when + openPopup(startEvent); + triggerAction('append-expanded-subprocess'); + + // then + expect(outgoingFlows).to.have.length(2); + })); + + + it('should undo', inject(function(elementRegistry, commandStack) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + + // when + openPopup(startEvent); + triggerAction('append-expanded-subprocess'); + + // then + expect(outgoingFlows).to.have.length(2); + + // when + commandStack.undo(); + + // then + expect(outgoingFlows).to.have.length(1); + })); + + + it('should redo', inject(function(elementRegistry, commandStack) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + + openPopup(startEvent); + triggerAction('append-expanded-subprocess'); + commandStack.undo(); + + // then + expect(outgoingFlows).to.have.length(1); + + // when + commandStack.redo(); + + // then + expect(outgoingFlows).to.have.length(2); + })); + + + describe('should trigger create mode', function() { + + it('event subprocess', inject(function(elementRegistry, eventBus) { + + // given + const task = elementRegistry.get('Task'); + + const spy = sinon.spy(); + + eventBus.on('create.init', spy); + + // when + openPopup(task); + + triggerAction('append-event-subprocess'); + + // then + expect(spy).to.have.been.called; + + })); + + }); + + + }); + + + describe('event', function() { + + it('should append', inject(function(elementRegistry) { + + // given + const task = elementRegistry.get('Task'); + const outgoingFlows = getBusinessObject(task).outgoing; + + expect(outgoingFlows).to.have.length(1); + + // when + openPopup(task); + triggerAction('append-none-end-event'); + + // then + expect(outgoingFlows).to.have.length(2); + })); + + + it('should undo', inject(function(elementRegistry, commandStack) { + + // given + const task = elementRegistry.get('Task'); + const outgoingFlows = getBusinessObject(task).outgoing; + + // when + openPopup(task); + triggerAction('append-none-end-event'); + + // then + expect(outgoingFlows).to.have.length(2); + + // when + commandStack.undo(); + + // then + expect(outgoingFlows).to.have.length(1); + })); + + + it('should redo', inject(function(elementRegistry, commandStack) { + + // given + const task = elementRegistry.get('Task'); + const outgoingFlows = getBusinessObject(task).outgoing; + + openPopup(task); + triggerAction('append-none-end-event'); + commandStack.undo(); + + // then + expect(outgoingFlows).to.have.length(1); + + // when + commandStack.redo(); + + // then + expect(outgoingFlows).to.have.length(2); + })); + + + describe('should trigger create mode', function() { + + it('boundary event', inject(function(elementRegistry, eventBus) { + + // given + const task = elementRegistry.get('Task'); + + const spy = sinon.spy(); + + eventBus.on('create.init', spy); + + // when + openPopup(task); + + triggerAction('append-non-interrupting-message-boundary'); + + // then + expect(spy).to.have.been.called; + + })); + + + it('link intermediate catch event', inject(function(elementRegistry, eventBus) { + + // given + const task = elementRegistry.get('Task'); + + const spy = sinon.spy(); + + eventBus.on('create.init', spy); + + // when + openPopup(task); + + triggerAction('append-link-intermediate-catch'); + + // then + expect(spy).to.have.been.called; + + })); + + }); + + }); + + + describe('gateway', function() { + + it('should append', inject(function(elementRegistry) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + + expect(outgoingFlows).to.have.length(1); + + // when + openPopup(startEvent); + triggerAction('append-exclusive-gateway'); + + // then + expect(outgoingFlows).to.have.length(2); + })); + + + it('should undo', inject(function(elementRegistry, commandStack) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + + // when + openPopup(startEvent); + triggerAction('append-exclusive-gateway'); + + // then + expect(outgoingFlows).to.have.length(2); + + // when + commandStack.undo(); + + // then + expect(outgoingFlows).to.have.length(1); + })); + + + it('should redo', inject(function(elementRegistry, commandStack) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + + openPopup(startEvent); + triggerAction('append-exclusive-gateway'); + commandStack.undo(); + + // then + expect(outgoingFlows).to.have.length(1); + + // when + commandStack.redo(); + + // then + expect(outgoingFlows).to.have.length(2); + })); + + }); + + + describe('data reference', function() { + + it('should append', inject(function(elementRegistry) { + + // given + const task = elementRegistry.get('Task'); + const dataOutputAssociations = getBusinessObject(task).get('dataOutputAssociations'); + + expect(dataOutputAssociations).to.have.length(0); + + // when + openPopup(task); + triggerAction('append-data-store-reference'); + + // then + expect(dataOutputAssociations).to.have.length(1); + })); + + + it('should undo', inject(function(elementRegistry, commandStack) { + + // given + const task = elementRegistry.get('Task'); + const dataOutputAssociations = getBusinessObject(task).get('dataOutputAssociations'); + + // when + openPopup(task); + triggerAction('append-data-store-reference'); + + // then + expect(dataOutputAssociations).to.have.length(1); + + // when + commandStack.undo(); + + // then + expect(dataOutputAssociations).to.have.length(0); + })); + + + it('should redo', inject(function(elementRegistry, commandStack) { + + // given + const task = elementRegistry.get('Task'); + const dataOutputAssociations = getBusinessObject(task).get('dataOutputAssociations'); + + openPopup(task); + triggerAction('append-data-store-reference'); + commandStack.undo(); + + // then + expect(dataOutputAssociations).to.have.length(0); + + // when + commandStack.redo(); + + // then + expect(dataOutputAssociations).to.have.length(1); + })); + + }); + + }); + +}); + + +// // helpers +function openPopup(element, offset) { + offset = offset || 100; + + getBpmnJS().invoke(function(popupMenu) { + + popupMenu.open(element, 'bpmn-append', { + x: element.x + offset, y: element.y + offset + }); + + }); +} + +function queryEntry(id) { + var container = getMenuContainer(); + + return domQuery('.djs-popup [data-id="' + id + '"]', container); +} + +function queryEntries() { + var container = getMenuContainer(); + + return domQueryAll('.djs-popup .entry', container); +} + +function getMenuContainer() { + const popup = getBpmnJS().get('popupMenu'); + return popup._current.container; +} + +function triggerAction(id) { + var entry = queryEntry(id); + + if (!entry) { + throw new Error('entry "' + id + '" not found in append menu'); + } + + var popupMenu = getBpmnJS().get('popupMenu'); + + return popupMenu.trigger(globalEvent(entry, { x: 0, y: 0 })); +} \ No newline at end of file diff --git a/test/spec/features/rules/BpmnRulesSpec.js b/test/spec/features/rules/BpmnRulesSpec.js index 90c2f3e145..50359ed846 100644 --- a/test/spec/features/rules/BpmnRulesSpec.js +++ b/test/spec/features/rules/BpmnRulesSpec.js @@ -2181,4 +2181,73 @@ describe('features/modeling/rules - BpmnRules', function() { }); + + describe('element append', function() { + + var testXML = require('../../../fixtures/bpmn/simple.bpmn'); + + beforeEach(bootstrapModeler(testXML, { modules: testModules })); + + + it('should not allow for given element types', inject(function(elementFactory, rules) { + + // given + var types = [ + 'bpmn:EndEvent', + 'bpmn:Group', + 'bpmn:TextAnnotation', + 'bpmn:SequenceFlow', + 'bpmn:Lane', + 'bpmn:Participant', + 'bpmn:DataStoreReference', + 'bpmn:DataObjectReference' + ]; + + // when + + var results = types.map(function(type) { + var element = elementFactory.createShape({ type: type }); + return rules.allowed('shape.append', { element }); + }); + + // then + results.forEach(function(result) { + expect(result).to.be.false; + }); + })); + + + it('should not allow for event subprocess', inject(function(elementFactory, rules) { + + // given + var element = elementFactory.createShape({ type: 'bpmn:SubProcess', triggeredByEvent: true }); + + // when + + var result = rules.allowed('shape.append', { element }); + + // then + expect(result).to.be.false; + })); + + + it('should not allow for link intermediate throw event', inject(function(elementFactory, rules) { + + // given + var element = elementFactory.createShape({ + type: 'bpmn:IntermediateThrowEvent', + cancelActivity: false, + eventDefinitionType: 'bpmn:LinkEventDefinition' + }); + + // when + + var result = rules.allowed('shape.append', { element }); + + // then + expect(result).to.be.false; + })); + + }); + }); From 67083cd287bc43004b350adf80fb65c0758baf42 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 10 Jan 2023 16:06:47 +0100 Subject: [PATCH 219/989] feat(context-pad): add append entry Closes #1801 --- .../context-pad/ContextPadProvider.js | 46 ++++++++ lib/features/popup-menu/AppendMenuProvider.js | 8 +- lib/icons/Icons.js | 9 ++ lib/icons/resources/append.svg | 3 + .../context-pad/ContextPadProviderSpec.js | 111 ++++++++++++++++-- 5 files changed, 164 insertions(+), 13 deletions(-) create mode 100644 lib/icons/Icons.js create mode 100644 lib/icons/resources/append.svg diff --git a/lib/features/context-pad/ContextPadProvider.js b/lib/features/context-pad/ContextPadProvider.js index c5cf2b157b..235e805df5 100644 --- a/lib/features/context-pad/ContextPadProvider.js +++ b/lib/features/context-pad/ContextPadProvider.js @@ -26,6 +26,10 @@ import { hasPrimaryModifier } from 'diagram-js/lib/util/Mouse'; +import { + appendIcon +} from '../../icons/Icons'; + /** * A provider for BPMN 2.0 elements context pad @@ -173,6 +177,22 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { return pos; } + function getAppendMenuPosition(element) { + + var X_OFFSET = 5; + + var pad = contextPad.getPad(element).html; + + var padRect = pad.getBoundingClientRect(); + + var pos = { + x: padRect.right + X_OFFSET, + y: padRect.top + }; + + return pos; + } + /** * Create an append action @@ -476,6 +496,32 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { }); } + if (!popupMenu.isEmpty(element, 'bpmn-append')) { + + // Replace menu entry + assign(actions, { + 'append': { + group: 'model', + imageUrl: appendIcon, + title: translate('Append element'), + action: { + click: function(event, element) { + + var position = assign(getAppendMenuPosition(element), { + cursor: { x: event.x, y: event.y } + }); + + popupMenu.open(element, 'bpmn-append', position, { + title: translate('Append element'), + width: 300, + search: true + }); + } + } + } + }); + } + // delete element entry, only show if allowed by rules var deleteAllowed = rules.allowed('elements.delete', { elements: [ element ] }); diff --git a/lib/features/popup-menu/AppendMenuProvider.js b/lib/features/popup-menu/AppendMenuProvider.js index 91dd0a1c27..b4301be805 100644 --- a/lib/features/popup-menu/AppendMenuProvider.js +++ b/lib/features/popup-menu/AppendMenuProvider.js @@ -133,9 +133,13 @@ AppendMenuProvider.prototype._createEntryAction = function(element, target) { autoPlace.append(element, newElement); }; - const manualPlaceElement = () => { + const manualPlaceElement = (event) => { const newElement = elementFactory.create('shape', target); - const event = mouse.getLastMoveEvent(); + + if (event instanceof KeyboardEvent) { + event = mouse.getLastMoveEvent(); + } + return create.start(event, newElement); }; diff --git a/lib/icons/Icons.js b/lib/icons/Icons.js new file mode 100644 index 0000000000..85d7383af0 --- /dev/null +++ b/lib/icons/Icons.js @@ -0,0 +1,9 @@ +/** + * To change the icons, modify the SVGs in `./resources`, execute `npx svgo -f resources --datauri enc -o dist`, + * and then replace respective icons with the optimized data URIs in `./dist`. + */ +const appendIcon = 'data:image/svg+xml,%3Csvg%20width%3D%2222%22%20height%3D%2222%22%20viewBox%3D%220%200%205.82%205.82%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M1.3%203.4c.3%200%20.5-.2.5-.5s-.2-.4-.5-.4c-.2%200-.4.1-.4.4%200%20.3.2.5.4.5zM3%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5zM4.6%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5z%22%2F%3E%0A%3C%2Fsvg%3E'; + +export { + appendIcon +}; \ No newline at end of file diff --git a/lib/icons/resources/append.svg b/lib/icons/resources/append.svg new file mode 100644 index 0000000000..88d11936a2 --- /dev/null +++ b/lib/icons/resources/append.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/test/spec/features/context-pad/ContextPadProviderSpec.js b/test/spec/features/context-pad/ContextPadProviderSpec.js index e26b8040c9..c9167e22e0 100644 --- a/test/spec/features/context-pad/ContextPadProviderSpec.js +++ b/test/spec/features/context-pad/ContextPadProviderSpec.js @@ -26,6 +26,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 +37,8 @@ describe('features - context-pad', function() { contextPadModule, replaceMenuModule, customRulesModule, - createModule + createModule, + appendMenuProvider ]; @@ -266,7 +268,8 @@ describe('features - context-pad', function() { 'append.gateway', 'append.append-task', 'append.intermediate-event', - 'append.text-annotation' + 'append.text-annotation', + 'append' ]); })); @@ -282,7 +285,8 @@ describe('features - context-pad', function() { 'append.condition-intermediate-event', 'append.signal-intermediate-event', 'append.text-annotation', - '!append.task' + '!append.task', + 'append' ]); })); @@ -292,7 +296,8 @@ describe('features - context-pad', function() { expectContextPadEntries('EndEvent_1', [ 'connect', 'replace', - '!append.task' + '!append.task', + '!append' ]); })); @@ -303,7 +308,8 @@ describe('features - context-pad', function() { 'connect', 'replace', '!append.end-event', - 'append.text-annotation' + 'append.text-annotation', + 'append' ]); })); @@ -314,7 +320,8 @@ describe('features - context-pad', function() { 'connect', 'replace', 'append.compensation-activity', - '!append.end-event' + '!append.end-event', + 'append' ]); })); @@ -325,7 +332,8 @@ describe('features - context-pad', function() { 'connect', 'append.text-annotation', 'replace', - '!append.end-event' + '!append.end-event', + '!ppend' ]); })); @@ -336,7 +344,8 @@ describe('features - context-pad', function() { 'connect', 'append.text-annotation', 'replace', - '!append.end-event' + '!append.end-event', + '!append' ]); })); @@ -346,7 +355,8 @@ describe('features - context-pad', function() { expectContextPadEntries('Group_1', [ 'append.text-annotation', 'delete', - '!replace' + '!replace', + '!append' ]); })); @@ -357,7 +367,8 @@ describe('features - context-pad', function() { 'connect', 'delete', '!replace', - '!append.text-annotation' + '!append.text-annotation', + '!append' ]); })); @@ -368,7 +379,8 @@ describe('features - context-pad', function() { 'append.text-annotation', 'delete', 'replace', - '!connect' + '!connect', + '!append' ]); })); @@ -608,6 +620,83 @@ describe('features - context-pad', function() { }); + describe('append', function() { + + var diagramXML = require('../../../fixtures/bpmn/simple.bpmn'); + + beforeEach(bootstrapModeler(diagramXML, { + modules: testModules + })); + + + it('should show append menu in the correct position', inject(function(elementRegistry, contextPad) { + + // given + var element = elementRegistry.get('StartEvent_1'), + padding = { y: 1, x: 5 }, + padMenuRect, + replaceMenuRect; + + contextPad.open(element); + + // when + contextPad.trigger('click', padEvent('append')); + + padMenuRect = contextPad.getPad(element).html.getBoundingClientRect(); + replaceMenuRect = getPopupMenu().getBoundingClientRect(); + + // then + expect(replaceMenuRect.left).to.be.at.most(padMenuRect.right + padding.x); + expect(replaceMenuRect.top).to.be.at.most(padMenuRect.top + padding.y); + })); + + + it('should hide wrench if replacement is disallowed', inject( + function(elementRegistry, contextPad, customRules) { + + // given + var element = elementRegistry.get('StartEvent_1'); + + // disallow replacement + customRules.addRule('shape.append', function(context) { + return !is(context.element, 'bpmn:StartEvent'); + }); + + // when + contextPad.open(element); + + var padNode = contextPad.getPad(element).html; + + // then + expect(padEntry(padNode, 'append')).not.to.exist; + } + )); + + + it('should show wrench if replacement is allowed', inject( + function(elementRegistry, contextPad, customRules) { + + // given + var element = elementRegistry.get('Task_1'); + + // disallow replacement + customRules.addRule('shape.append', function(context) { + return !is(context.element, 'bpmn:StartEvent'); + }); + + // when + contextPad.open(element); + + var padNode = contextPad.getPad(element).html; + + // then + expect(padEntry(padNode, 'append')).to.exist; + } + )); + + }); + + describe('auto place', function() { var diagramXML = require('../../../fixtures/bpmn/simple.bpmn'); From 7d3d171e15ed393b40c332902b66c52b68f70a2e Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 18 Jan 2023 14:48:48 +0100 Subject: [PATCH 220/989] chore: improve issue templates --- .github/ISSUE_TEMPLATE/BUG_REPORT.md | 8 ++++---- .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md | 8 ++++---- .github/ISSUE_TEMPLATE/TASK.md | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md index d10b05a7de..fcc7465149 100644 --- a/.github/ISSUE_TEMPLATE/BUG_REPORT.md +++ b/.github/ISSUE_TEMPLATE/BUG_REPORT.md @@ -5,12 +5,12 @@ labels: "bug" --- -__Describe the Bug__ +### Describe the Bug -__Steps to Reproduce__ +### Steps to Reproduce 1. do this 2. do that @@ -21,12 +21,12 @@ If you report a modeling related issue, ensure you can reproduce it on [demo.bpm When reporting a library error, try to build an example that reproduces your problem. You can use our playgrounds for [viewer](https://jsfiddle.net/07envcu1/) or [modeler](https://jsfiddle.net/bg97r61t/) as a starting point or put a demo up on [GitHub](https://github.com/) for inspection. --> -__Expected Behavior__ +### Expected Behavior -__Environment__ +### Environment - Browser: [e.g. IE 11, Chrome 69] - OS: [e.g. Windows 7] diff --git a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md index e72eeedc18..e8254ad405 100644 --- a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md +++ b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md @@ -5,20 +5,20 @@ labels: "enhancement" --- -__Is your feature request related to a problem? Please describe.__ +### Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -__Describe the solution you'd like__ +### Describe the solution you'd like A clear and concise description of what you want to happen. -__Describe alternatives you've considered__ +### Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered. -__Additional context__ +### Additional context Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/TASK.md b/.github/ISSUE_TEMPLATE/TASK.md index 759e0f96a3..09b19bef68 100644 --- a/.github/ISSUE_TEMPLATE/TASK.md +++ b/.github/ISSUE_TEMPLATE/TASK.md @@ -4,11 +4,11 @@ about: Describe a generic activity we should carry out. --- -__What should we do?__ +### What should we do? -__Why should we do it?__ +### Why should we do it? \ No newline at end of file From a3153fe59a8501212b201f81d833cf37f99f018e Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 18 Jan 2023 13:52:27 +0100 Subject: [PATCH 221/989] feat(keyboard-bindings): add append shortcut --- lib/features/keyboard/BpmnKeyboardBindings.js | 18 +++++++++++++++ .../keyboard/BpmnKeyboardBindingsSpec.js | 23 ++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/lib/features/keyboard/BpmnKeyboardBindings.js b/lib/features/keyboard/BpmnKeyboardBindings.js index 819f9be915..8659ad0721 100644 --- a/lib/features/keyboard/BpmnKeyboardBindings.js +++ b/lib/features/keyboard/BpmnKeyboardBindings.js @@ -172,4 +172,22 @@ BpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActio } }); + + // activate append element + // A + addListener('appendElement', function(context) { + + var event = context.keyEvent; + + if (keyboard.hasModifier(event)) { + return; + } + + if (keyboard.isKey([ 'a', 'A' ], event)) { + editorActions.trigger('appendElement', event); + + return true; + } + }); + }; \ No newline at end of file diff --git a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js index 24c181a5f1..c78965f817 100644 --- a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js +++ b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js @@ -68,7 +68,8 @@ describe('features/keyboard', function() { 'directEditing', 'find', 'moveToOrigin', - 'replaceElement' + 'replaceElement', + 'appendElement' ]; // then @@ -178,6 +179,26 @@ describe('features/keyboard', function() { }) ); + + it('should trigger append 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; + })); + }); From 11a7666ff111d84c9d19f400c71cf4fed54e779b Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 18 Jan 2023 14:01:29 +0100 Subject: [PATCH 222/989] feat(editor-actions): add append action Closes #1808 --- .../editor-actions/BpmnEditorActions.js | 6 ++ test/spec/ModelerSpec.js | 3 +- .../editor-actions/BpmnEditorActionsSpec.js | 73 ++++++++++++++++++- 3 files changed, 79 insertions(+), 3 deletions(-) diff --git a/lib/features/editor-actions/BpmnEditorActions.js b/lib/features/editor-actions/BpmnEditorActions.js index 5ccd8f3a92..e4b5f48783 100644 --- a/lib/features/editor-actions/BpmnEditorActions.js +++ b/lib/features/editor-actions/BpmnEditorActions.js @@ -181,4 +181,10 @@ BpmnEditorActions.prototype._registerDefaultActions = function(injector) { }); } + if (selection && contextPad) { + this._registerAction('appendElement', function(event) { + contextPad.triggerEntry('append', 'click', event); + }); + } + }; diff --git a/test/spec/ModelerSpec.js b/test/spec/ModelerSpec.js index 67e19dbf3f..38d56ad269 100644 --- a/test/spec/ModelerSpec.js +++ b/test/spec/ModelerSpec.js @@ -284,7 +284,8 @@ describe('Modeler', function() { 'directEditing', 'find', 'moveToOrigin', - 'replaceElement' + 'replaceElement', + 'appendElement' ]; var modeler = new Modeler(); diff --git a/test/spec/features/editor-actions/BpmnEditorActionsSpec.js b/test/spec/features/editor-actions/BpmnEditorActionsSpec.js index 197e698404..5abb45d69a 100644 --- a/test/spec/features/editor-actions/BpmnEditorActionsSpec.js +++ b/test/spec/features/editor-actions/BpmnEditorActionsSpec.js @@ -244,7 +244,7 @@ describe('features/editor-actions', function() { })); - it('should not open replace element if no selection', inject(function(elementRegistry, selection, editorActions, eventBus) { + it('should not open replace element if no selection', inject(function(editorActions, eventBus) { // given var changedSpy = sinon.spy(); @@ -259,7 +259,7 @@ describe('features/editor-actions', function() { })); - it('should not open replace element if multple elements selected', inject(function(elementRegistry, selection, editorActions, eventBus) { + it('should not open replace element if multiple elements selected', inject(function(elementRegistry, selection, editorActions, eventBus) { // given var elementIds = [ 'StartEvent_1', 'UserTask_1' ]; @@ -281,4 +281,73 @@ describe('features/editor-actions', function() { }); + + describe('#appendElement', function() { + + beforeEach(bootstrapModeler(basicXML, { + modules: [ + selectionModule, + bpmnEditorActionsModule, + modelingModule, + coreModule, + contextPad + ] + })); + + + it('should open append 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('appendElement', {}); + + // then + expect(changedSpy).to.have.been.called; + })); + + + it('should not open append element if no selection', inject(function(editorActions, eventBus) { + + // given + var changedSpy = sinon.spy(); + + // when + eventBus.once('popupMenu.open', changedSpy); + + editorActions.trigger('appendElement', {}); + + // then + expect(changedSpy).to.not.have.been.called; + })); + + + it('should not open append 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('appendElement', {}); + + // then + expect(changedSpy).to.not.have.been.called; + })); + + }); + }); From 18ba837b46349b38a4393c40a0a1a6e17141305e Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Mon, 23 Jan 2023 10:32:12 +0100 Subject: [PATCH 223/989] feat(palette): add create entry --- .../CreatePaletteProvider.js | 69 +++++++++++++++++++ lib/icons/Icons.js | 4 +- lib/icons/resources/create.svg | 3 + .../CreatePaletteProviderSpec.js | 60 ++++++++++++++++ 4 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 lib/features/create-append-anything/CreatePaletteProvider.js create mode 100644 lib/icons/resources/create.svg create mode 100644 test/spec/features/create-append-anything/CreatePaletteProviderSpec.js diff --git a/lib/features/create-append-anything/CreatePaletteProvider.js b/lib/features/create-append-anything/CreatePaletteProvider.js new file mode 100644 index 0000000000..afdd2eac7e --- /dev/null +++ b/lib/features/create-append-anything/CreatePaletteProvider.js @@ -0,0 +1,69 @@ +import { + assign +} from 'min-dash'; +import { createIcon } from '../../icons/Icons'; +import { query as domQuery } from 'min-dom'; + + +/** + * A palette provider for the create elements menu. + */ +export default function CreatePaletteProvider(palette, translate, popupMenu, canvas) { + + this._translate = translate; + this._popupMenu = popupMenu; + this._canvas = canvas; + + palette.registerProvider(800,this); +} + +CreatePaletteProvider.$inject = [ + 'palette', + 'translate', + 'popupMenu', + 'canvas' +]; + + +CreatePaletteProvider.prototype.getPaletteEntries = function(element) { + const actions = {}, + translate = this._translate, + popupMenu = this._popupMenu, + canvas = this._canvas; + + const getPosition = (event) => { + const X_OFFSET = 35; + const Y_OFFSET = 10; + + const target = event && event.target || domQuery('.djs-palette [data-action="create"]'); + const targetPosition = target.getBoundingClientRect(); + + return target && { + x: targetPosition.left + targetPosition.width / 2 + X_OFFSET, + y: targetPosition.top + targetPosition.height / 2 + Y_OFFSET + }; + }; + + assign(actions, { + 'create': { + group: 'create', + imageUrl: createIcon, + title: translate('Create element'), + action: { + click: function(event) { + const position = getPosition(event); + + const element = canvas.getRootElement(); + + popupMenu.open(element, 'bpmn-create', position, { + title: translate('Create element'), + width: 300, + search: true + }); + } + } + }, + }); + + return actions; +}; diff --git a/lib/icons/Icons.js b/lib/icons/Icons.js index 85d7383af0..9aeb89405e 100644 --- a/lib/icons/Icons.js +++ b/lib/icons/Icons.js @@ -3,7 +3,9 @@ * and then replace respective icons with the optimized data URIs in `./dist`. */ const appendIcon = 'data:image/svg+xml,%3Csvg%20width%3D%2222%22%20height%3D%2222%22%20viewBox%3D%220%200%205.82%205.82%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M1.3%203.4c.3%200%20.5-.2.5-.5s-.2-.4-.5-.4c-.2%200-.4.1-.4.4%200%20.3.2.5.4.5zM3%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5zM4.6%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5z%22%2F%3E%0A%3C%2Fsvg%3E'; +const createIcon = 'data:image/svg+xml,%3Csvg%20width%3D%2246%22%20height%3D%2246%22%20viewBox%3D%22-2%20-2%209.82%209.82%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M1.3%203.4c.3%200%20.5-.2.5-.5s-.2-.4-.5-.4c-.2%200-.4.1-.4.4%200%20.3.2.5.4.5zM3%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5zM4.6%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5z%22%2F%3E%0A%3C%2Fsvg%3E'; export { - appendIcon + appendIcon, + createIcon }; \ No newline at end of file diff --git a/lib/icons/resources/create.svg b/lib/icons/resources/create.svg new file mode 100644 index 0000000000..5cf8f8650f --- /dev/null +++ b/lib/icons/resources/create.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/test/spec/features/create-append-anything/CreatePaletteProviderSpec.js b/test/spec/features/create-append-anything/CreatePaletteProviderSpec.js new file mode 100644 index 0000000000..b73b939814 --- /dev/null +++ b/test/spec/features/create-append-anything/CreatePaletteProviderSpec.js @@ -0,0 +1,60 @@ +import { + bootstrapModeler, + getBpmnJS, + inject +} from 'test/TestHelper'; + +import coreModule from 'lib/core'; +import modelingModule from 'lib/features/modeling'; +import createAppendElements from 'lib/features/create-append-anything'; + +import { createMoveEvent } from 'diagram-js/lib/features/mouse/Mouse'; + + +describe('features/palette', function() { + + var diagramXML = require('./CreateMenuProvider.bpmn'); + + var testModules = [ + coreModule, + modelingModule, + createAppendElements + ]; + + beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); + + + describe('create', function() { + + it('should trigger create menu', inject(function(popupMenu, canvas) { + + // given + var createSpy = sinon.spy(popupMenu, 'open'); + + // when + triggerPaletteEntry('create'); + + // then + const args = createSpy.getCall(0).args; + + expect(createSpy).to.have.been.called; + expect(args[0]).to.eq(canvas.getRootElement()); + expect(args[1]).to.eq('bpmn-create'); + })); + + }); + +}); + + +// helpers ////////// + +function triggerPaletteEntry(id) { + getBpmnJS().invoke(function(palette) { + var entry = palette.getEntries()[ id ]; + + if (entry && entry.action && entry.action.click) { + entry.action.click(createMoveEvent(0, 0)); + } + }); +} \ No newline at end of file From bfc33f36e7b7b645eba3c26def8ab7605423297c Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Mon, 23 Jan 2023 10:32:43 +0100 Subject: [PATCH 224/989] feat(popup-menu): add create menu provider Closes #1798 --- lib/Modeler.js | 2 + .../CreateMenuProvider.js | 112 +++++ lib/features/create-append-anything/index.js | 20 + .../util/OptionsUtil.js | 0 lib/features/popup-menu/AppendMenuProvider.js | 2 +- .../CreateMenuProvider.bpmn | 7 + .../CreateMenuProviderSpec.js | 423 ++++++++++++++++++ 7 files changed, 565 insertions(+), 1 deletion(-) create mode 100644 lib/features/create-append-anything/CreateMenuProvider.js create mode 100644 lib/features/create-append-anything/index.js rename lib/features/{popup-menu => create-append-anything}/util/OptionsUtil.js (100%) create mode 100644 test/spec/features/create-append-anything/CreateMenuProvider.bpmn create mode 100644 test/spec/features/create-append-anything/CreateMenuProviderSpec.js diff --git a/lib/Modeler.js b/lib/Modeler.js index 7aedb9de40..3c56175af1 100644 --- a/lib/Modeler.js +++ b/lib/Modeler.js @@ -20,6 +20,7 @@ import ConnectionPreviewModule from 'diagram-js/lib/features/connection-preview' import ContextPadModule from './features/context-pad'; import CopyPasteModule from './features/copy-paste'; import CreateModule from 'diagram-js/lib/features/create'; +import CreateAppendAnythingModule from './features/create-append-anything'; import DistributeElementsModule from './features/distribute-elements'; import EditorActionsModule from './features/editor-actions'; import GridSnappingModule from './features/grid-snapping'; @@ -190,6 +191,7 @@ Modeler.prototype._modelingModules = [ ContextPadModule, CopyPasteModule, CreateModule, + CreateAppendAnythingModule, DistributeElementsModule, EditorActionsModule, GridSnappingModule, diff --git a/lib/features/create-append-anything/CreateMenuProvider.js b/lib/features/create-append-anything/CreateMenuProvider.js new file mode 100644 index 0000000000..44b5e32f7b --- /dev/null +++ b/lib/features/create-append-anything/CreateMenuProvider.js @@ -0,0 +1,112 @@ +import { CREATE_OPTIONS } from './util/OptionsUtil'; + +/** + * This module is a create menu provider for the popup menu. + */ +export default function CreateMenuProvider( + elementFactory, popupMenu, create, + autoPlace, mouse, translate +) { + this._elementFactory = elementFactory; + this._popupMenu = popupMenu; + this._create = create; + this._autoPlace = autoPlace; + this._mouse = mouse; + this._translate = translate; + + this.register(); +} + +CreateMenuProvider.$inject = [ + 'elementFactory', + 'popupMenu', + 'create', + 'autoPlace', + 'mouse', + 'translate' +]; + +/** + * Register create menu provider in the popup menu + */ +CreateMenuProvider.prototype.register = function() { + this._popupMenu.registerProvider('bpmn-create', this); +}; + +/** + * Get all entries + * + * @param {djs.model.Base} element + * + * @return {Array} a list of menu entry items + */ +CreateMenuProvider.prototype.getPopupMenuEntries = function() { + + const entries = {}; + + // map options to menu entries + CREATE_OPTIONS.forEach(option => { + const { + actionName, + className, + label, + target, + description, + group, + search + } = option; + + const targetAction = this._createEntryAction(target); + + entries[`create-${actionName}`] = { + label: label && this._translate(label), + className, + description, + group: group && { + ...group, + name: this._translate(group.name) + }, + search, + action: { + click: targetAction, + dragstart: targetAction + } + }; + }); + + return entries; +}; + +/** + * Create an action for a given target + * + * @param {Object} target + * @returns {Object} + */ +CreateMenuProvider.prototype._createEntryAction = function(target) { + + const create = this._create; + const mouse = this._mouse; + const popupMenu = this._popupMenu; + const elementFactory = this._elementFactory; + + let newElement; + + return (event) => { + popupMenu.close(); + + // create the new element + if (target.type === 'bpmn:Participant') { + newElement = elementFactory.createParticipantShape(target); + } else { + newElement = elementFactory.create('shape', target); + } + + // use last mouse event if triggered via keyboard + if (event instanceof KeyboardEvent) { + event = mouse.getLastMoveEvent(); + } + + return create.start(event, newElement); + }; +}; \ No newline at end of file diff --git a/lib/features/create-append-anything/index.js b/lib/features/create-append-anything/index.js new file mode 100644 index 0000000000..e07c5fd78e --- /dev/null +++ b/lib/features/create-append-anything/index.js @@ -0,0 +1,20 @@ +import PopupMenuModule from 'diagram-js/lib/features/popup-menu'; +import PaletteModule from 'diagram-js/lib/features/palette'; +import AutoPlace from '../auto-place'; + +import CreateMenuProvider from './CreateMenuProvider'; +import CreatePaletteProvider from './CreatePaletteProvider'; + +export default { + __depends__: [ + PaletteModule, + PopupMenuModule, + AutoPlace + ], + __init__: [ + 'createMenuProvider', + 'createPaletteProvider' + ], + createMenuProvider: [ 'type', CreateMenuProvider ], + createPaletteProvider: [ 'type', CreatePaletteProvider ] +}; diff --git a/lib/features/popup-menu/util/OptionsUtil.js b/lib/features/create-append-anything/util/OptionsUtil.js similarity index 100% rename from lib/features/popup-menu/util/OptionsUtil.js rename to lib/features/create-append-anything/util/OptionsUtil.js diff --git a/lib/features/popup-menu/AppendMenuProvider.js b/lib/features/popup-menu/AppendMenuProvider.js index b4301be805..79be889321 100644 --- a/lib/features/popup-menu/AppendMenuProvider.js +++ b/lib/features/popup-menu/AppendMenuProvider.js @@ -1,5 +1,5 @@ import { isUndefined } from 'min-dash'; -import { CREATE_OPTIONS } from './util/OptionsUtil'; +import { CREATE_OPTIONS } from '../create-append-anything/util/OptionsUtil'; /** * This module is an append menu provider for the popup menu. diff --git a/test/spec/features/create-append-anything/CreateMenuProvider.bpmn b/test/spec/features/create-append-anything/CreateMenuProvider.bpmn new file mode 100644 index 0000000000..191f71b000 --- /dev/null +++ b/test/spec/features/create-append-anything/CreateMenuProvider.bpmn @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/spec/features/create-append-anything/CreateMenuProviderSpec.js b/test/spec/features/create-append-anything/CreateMenuProviderSpec.js new file mode 100644 index 0000000000..d787a3db0b --- /dev/null +++ b/test/spec/features/create-append-anything/CreateMenuProviderSpec.js @@ -0,0 +1,423 @@ +import { + bootstrapModeler, + getBpmnJS, + inject +} from 'test/TestHelper'; + +import { + createCanvasEvent, + createEvent as globalEvent +} from '../../../util/MockEvents'; + +import coreModule from 'lib/core'; +import modelingModule from 'lib/features/modeling'; +import createAppendElements from 'lib/features/create-append-anything'; + +import { + query as domQuery +} from 'min-dom'; + +import { is } from 'lib/util/ModelUtil'; + + +describe('features/popup-menu - create menu provider', function() { + + var diagramXML = require('./CreateMenuProvider.bpmn'); + + var testModules = [ + coreModule, + modelingModule, + createAppendElements + ]; + + beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); + + + describe('create', function() { + + describe('task', function() { + + it('should create', inject(function(canvas, dragging, selection, elementRegistry) { + + // when + triggerEntry('create-task', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:Task'); + expectSelected(selection, 'bpmn:Task'); + })); + + + it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-task', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:Task'); + expectSelected(selection, 'bpmn:Task'); + + // when + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:Task', false); + expectSelected(selection, 'bpmn:Task', false); + })); + + + it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-task', canvas, dragging); + + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:Task', false); + expectSelected(selection, 'bpmn:Task', false); + + // when; + commandStack.redo(); + + // then + expectElement(elementRegistry, 'bpmn:Task'); + })); + + }); + + + describe('sub process', function() { + + it('should create', inject(function(canvas, dragging, selection, elementRegistry) { + + // when + triggerEntry('create-expanded-subprocess', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:SubProcess'); + expectSelected(selection, 'bpmn:SubProcess'); + })); + + + it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-expanded-subprocess', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:SubProcess'); + expectSelected(selection, 'bpmn:SubProcess'); + + // when + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:SubProcess', false); + expectSelected(selection, 'bpmn:SubProcess', false); + })); + + + it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-expanded-subprocess', canvas, dragging); + + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:SubProcess', false); + expectSelected(selection, 'bpmn:SubProcess', false); + + // when; + commandStack.redo(); + + // then + expectElement(elementRegistry, 'bpmn:SubProcess'); + })); + + }); + + + describe('event', function() { + + it('should create', inject(function(canvas, dragging, selection, elementRegistry) { + + // when + triggerEntry('create-none-start-event', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:StartEvent'); + expectSelected(selection, 'bpmn:StartEvent'); + })); + + + it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-none-start-event', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:StartEvent'); + expectSelected(selection, 'bpmn:StartEvent'); + + // when + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:StartEvent', false); + expectSelected(selection, 'bpmn:StartEvent', false); + })); + + + it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-none-start-event', canvas, dragging); + + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:StartEvent', false); + expectSelected(selection, 'bpmn:StartEvent', false); + + // when; + commandStack.redo(); + + // then + expectElement(elementRegistry, 'bpmn:StartEvent'); + })); + + }); + + + describe('gateway', function() { + + it('should create', inject(function(canvas, dragging, selection, elementRegistry) { + + // when + triggerEntry('create-exclusive-gateway', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:ExclusiveGateway'); + expectSelected(selection, 'bpmn:ExclusiveGateway'); + })); + + + it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-exclusive-gateway', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:ExclusiveGateway'); + expectSelected(selection, 'bpmn:ExclusiveGateway'); + + // when + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:ExclusiveGateway', false); + expectSelected(selection, 'bpmn:ExclusiveGateway', false); + })); + + + it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-exclusive-gateway', canvas, dragging); + + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:ExclusiveGateway', false); + expectSelected(selection, 'bpmn:ExclusiveGateway', false); + + // when; + commandStack.redo(); + + // then + expectElement(elementRegistry, 'bpmn:ExclusiveGateway'); + })); + + }); + + + describe('data reference', function() { + + it('should create', inject(function(canvas, dragging, selection, elementRegistry) { + + // when + triggerEntry('create-data-store-reference', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:DataStoreReference'); + expectSelected(selection, 'bpmn:DataStoreReference'); + })); + + + it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-data-store-reference', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:DataStoreReference'); + expectSelected(selection, 'bpmn:DataStoreReference'); + + // when + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:DataStoreReference', false); + expectSelected(selection, 'bpmn:DataStoreReference', false); + })); + + + it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-data-store-reference', canvas, dragging); + + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:DataStoreReference', false); + expectSelected(selection, 'bpmn:DataStoreReference', false); + + // when; + commandStack.redo(); + + // then + expectElement(elementRegistry, 'bpmn:DataStoreReference'); + })); + + }); + + + describe('participant', function() { + + it('should create', inject(function(canvas, dragging, selection, elementRegistry) { + + // when + triggerEntry('create-expanded-pool', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:Participant'); + expectSelected(selection, 'bpmn:Participant'); + })); + + + it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-expanded-pool', canvas, dragging); + + // then + expectElement(elementRegistry, 'bpmn:Participant'); + expectSelected(selection, 'bpmn:Participant'); + + // when + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:Participant', false); + expectSelected(selection, 'bpmn:Participant', false); + })); + + + it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { + + // when + triggerEntry('create-expanded-pool', canvas, dragging); + + commandStack.undo(); + + // then + expectElement(elementRegistry, 'bpmn:Participant', false); + expectSelected(selection, 'bpmn:Participant', false); + + // when; + commandStack.redo(); + + // then + expectElement(elementRegistry, 'bpmn:Participant'); + })); + + }); + + }); + +}); + + +// // helpers +function openPopup(element, offset) { + offset = offset || 100; + + getBpmnJS().invoke(function(popupMenu) { + + popupMenu.open(element, 'bpmn-create', { + x: element.x + offset, y: element.y + offset + }); + + }); +} + +function queryEntry(id) { + var container = getMenuContainer(); + + return domQuery('.djs-popup [data-id="' + id + '"]', container); +} + +function getMenuContainer() { + const popup = getBpmnJS().get('popupMenu'); + return popup._current.container; +} + +function triggerAction(id) { + var entry = queryEntry(id); + + if (!entry) { + throw new Error('entry "' + id + '" not found in append menu'); + } + + var popupMenu = getBpmnJS().get('popupMenu'); + + return popupMenu.trigger(globalEvent(entry, { x: 0, y: 0 })); +} + +function triggerEntry(id, canvas, dragging) { + var rootElement = canvas.getRootElement(), + rootGfx = canvas.getGraphics(rootElement); + + openPopup(rootElement); + triggerAction(id); + + dragging.hover({ element: rootElement, gfx: rootGfx }); + dragging.move(createCanvasEvent({ x: 100, y: 100 })); + + // when + dragging.end(); +} + +function expectElement(elementRegistry, type, result = true) { + const element = elementRegistry.find((element) => is(element, type)); + + if (!result) { + expect(element).to.not.exist; + } else { + expect(element).to.exist; + } +} + +function expectSelected(selection, type, result = true) { + const selected = selection.get(); + + if (!result) { + expect(selected).to.have.length(0); + } else { + expect(selected).to.have.length(1); + expect(is(selected[0], type)).to.be.true; + } +} \ No newline at end of file From 3ee8667ca07530b89174eca1c46337165546913a Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Mon, 23 Jan 2023 15:04:49 +0100 Subject: [PATCH 225/989] feat(append-anything): move to dedicated module --- .../context-pad/ContextPadProvider.js | 47 ------- .../AppendContextPadProvider.js | 77 ++++++++++ .../AppendMenuProvider.js | 2 +- lib/features/create-append-anything/index.js | 16 ++- lib/features/popup-menu/index.js | 7 +- .../context-pad/ContextPadProviderSpec.js | 107 ++------------ .../AppendContextPadProviderSpec.js | 133 ++++++++++++++++++ .../AppendMenuProvider.bpmn | 0 .../AppendMenuProviderSpec.js | 6 +- 9 files changed, 238 insertions(+), 157 deletions(-) create mode 100644 lib/features/create-append-anything/AppendContextPadProvider.js rename lib/features/{popup-menu => create-append-anything}/AppendMenuProvider.js (97%) create mode 100644 test/spec/features/create-append-anything/AppendContextPadProviderSpec.js rename test/spec/features/{popup-menu => create-append-anything}/AppendMenuProvider.bpmn (100%) rename test/spec/features/{popup-menu => create-append-anything}/AppendMenuProviderSpec.js (98%) diff --git a/lib/features/context-pad/ContextPadProvider.js b/lib/features/context-pad/ContextPadProvider.js index 235e805df5..f85b83b308 100644 --- a/lib/features/context-pad/ContextPadProvider.js +++ b/lib/features/context-pad/ContextPadProvider.js @@ -26,10 +26,6 @@ import { hasPrimaryModifier } from 'diagram-js/lib/util/Mouse'; -import { - appendIcon -} from '../../icons/Icons'; - /** * A provider for BPMN 2.0 elements context pad @@ -177,23 +173,6 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { return pos; } - function getAppendMenuPosition(element) { - - var X_OFFSET = 5; - - var pad = contextPad.getPad(element).html; - - var padRect = pad.getBoundingClientRect(); - - var pos = { - x: padRect.right + X_OFFSET, - y: padRect.top - }; - - return pos; - } - - /** * Create an append action * @@ -496,32 +475,6 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { }); } - if (!popupMenu.isEmpty(element, 'bpmn-append')) { - - // Replace menu entry - assign(actions, { - 'append': { - group: 'model', - imageUrl: appendIcon, - title: translate('Append element'), - action: { - click: function(event, element) { - - var position = assign(getAppendMenuPosition(element), { - cursor: { x: event.x, y: event.y } - }); - - popupMenu.open(element, 'bpmn-append', position, { - title: translate('Append element'), - width: 300, - search: true - }); - } - } - } - }); - } - // delete element entry, only show if allowed by rules var deleteAllowed = rules.allowed('elements.delete', { elements: [ element ] }); diff --git a/lib/features/create-append-anything/AppendContextPadProvider.js b/lib/features/create-append-anything/AppendContextPadProvider.js new file mode 100644 index 0000000000..105e6e219e --- /dev/null +++ b/lib/features/create-append-anything/AppendContextPadProvider.js @@ -0,0 +1,77 @@ +import { + assign +} from 'min-dash'; + +import { + appendIcon +} from '../../icons/Icons'; + +var LOW_PRIORITY = 900; + +/** + * A provider for align elements context pad button + */ +export default function AppendContextPadProvider(contextPad, popupMenu, translate, canvas) { + contextPad.registerProvider(LOW_PRIORITY, this); + + this._contextPad = contextPad; + this._popupMenu = popupMenu; + this._translate = translate; + this._canvas = canvas; +} + +AppendContextPadProvider.$inject = [ + 'contextPad', + 'popupMenu', + 'translate', + 'canvas' +]; + +AppendContextPadProvider.prototype.getContextPadEntries = function(element) { + const popupMenu = this._popupMenu; + const translate = this._translate; + const getAppendMenuPosition = this._getAppendMenuPosition.bind(this); + + if (!popupMenu.isEmpty(element, 'bpmn-append')) { + + // Replace menu entry + return { + 'append': { + group: 'model', + imageUrl: appendIcon, + title: translate('Append element'), + action: { + click: function(event, element) { + + var position = assign(getAppendMenuPosition(element), { + cursor: { x: event.x, y: event.y } + }); + + popupMenu.open(element, 'bpmn-append', position, { + title: translate('Append element'), + width: 300, + search: true + }); + } + } + } + }; + } +}; + +AppendContextPadProvider.prototype._getAppendMenuPosition = function(element) { + const contextPad = this._contextPad; + + const X_OFFSET = 5; + + const pad = contextPad.getPad(element).html; + + const padRect = pad.getBoundingClientRect(); + + const pos = { + x: padRect.right + X_OFFSET, + y: padRect.top + }; + + return pos; +}; \ No newline at end of file diff --git a/lib/features/popup-menu/AppendMenuProvider.js b/lib/features/create-append-anything/AppendMenuProvider.js similarity index 97% rename from lib/features/popup-menu/AppendMenuProvider.js rename to lib/features/create-append-anything/AppendMenuProvider.js index 79be889321..b4301be805 100644 --- a/lib/features/popup-menu/AppendMenuProvider.js +++ b/lib/features/create-append-anything/AppendMenuProvider.js @@ -1,5 +1,5 @@ import { isUndefined } from 'min-dash'; -import { CREATE_OPTIONS } from '../create-append-anything/util/OptionsUtil'; +import { CREATE_OPTIONS } from './util/OptionsUtil'; /** * This module is an append menu provider for the popup menu. diff --git a/lib/features/create-append-anything/index.js b/lib/features/create-append-anything/index.js index e07c5fd78e..5a1740889e 100644 --- a/lib/features/create-append-anything/index.js +++ b/lib/features/create-append-anything/index.js @@ -1,20 +1,28 @@ import PopupMenuModule from 'diagram-js/lib/features/popup-menu'; import PaletteModule from 'diagram-js/lib/features/palette'; -import AutoPlace from '../auto-place'; +import AutoPlaceModule from 'diagram-js/lib/features/auto-place'; +import ContextPadModule from 'diagram-js/lib/features/context-pad'; import CreateMenuProvider from './CreateMenuProvider'; import CreatePaletteProvider from './CreatePaletteProvider'; +import AppendMenuProvider from './AppendMenuProvider'; +import AppendContextPadProvider from './AppendContextPadProvider'; export default { __depends__: [ PaletteModule, PopupMenuModule, - AutoPlace + AutoPlaceModule, + ContextPadModule ], __init__: [ 'createMenuProvider', - 'createPaletteProvider' + 'createPaletteProvider', + 'appendMenuProvider', + 'appendContextPadProvider' ], createMenuProvider: [ 'type', CreateMenuProvider ], - createPaletteProvider: [ 'type', CreatePaletteProvider ] + createPaletteProvider: [ 'type', CreatePaletteProvider ], + appendMenuProvider: [ 'type', AppendMenuProvider ], + appendContextPadProvider: [ 'type', AppendContextPadProvider ] }; diff --git a/lib/features/popup-menu/index.js b/lib/features/popup-menu/index.js index d10e2f2ebb..9382973b7f 100644 --- a/lib/features/popup-menu/index.js +++ b/lib/features/popup-menu/index.js @@ -2,7 +2,6 @@ import PopupMenuModule from 'diagram-js/lib/features/popup-menu'; import ReplaceModule from '../replace'; import ReplaceMenuProvider from './ReplaceMenuProvider'; -import AppendMenuProvider from './AppendMenuProvider'; import AutoPlaceModule from '../auto-place'; export default { @@ -12,9 +11,7 @@ export default { AutoPlaceModule ], __init__: [ - 'replaceMenuProvider', - 'appendMenuProvider' + 'replaceMenuProvider' ], - replaceMenuProvider: [ 'type', ReplaceMenuProvider ], - appendMenuProvider: [ 'type', AppendMenuProvider ] + replaceMenuProvider: [ 'type', ReplaceMenuProvider ] }; \ No newline at end of file diff --git a/test/spec/features/context-pad/ContextPadProviderSpec.js b/test/spec/features/context-pad/ContextPadProviderSpec.js index c9167e22e0..0689d9a486 100644 --- a/test/spec/features/context-pad/ContextPadProviderSpec.js +++ b/test/spec/features/context-pad/ContextPadProviderSpec.js @@ -268,8 +268,7 @@ describe('features - context-pad', function() { 'append.gateway', 'append.append-task', 'append.intermediate-event', - 'append.text-annotation', - 'append' + 'append.text-annotation' ]); })); @@ -285,8 +284,7 @@ describe('features - context-pad', function() { 'append.condition-intermediate-event', 'append.signal-intermediate-event', 'append.text-annotation', - '!append.task', - 'append' + '!append.task' ]); })); @@ -296,8 +294,7 @@ describe('features - context-pad', function() { expectContextPadEntries('EndEvent_1', [ 'connect', 'replace', - '!append.task', - '!append' + '!append.task' ]); })); @@ -308,8 +305,7 @@ describe('features - context-pad', function() { 'connect', 'replace', '!append.end-event', - 'append.text-annotation', - 'append' + 'append.text-annotation' ]); })); @@ -320,8 +316,7 @@ describe('features - context-pad', function() { 'connect', 'replace', 'append.compensation-activity', - '!append.end-event', - 'append' + '!append.end-event' ]); })); @@ -332,8 +327,7 @@ describe('features - context-pad', function() { 'connect', 'append.text-annotation', 'replace', - '!append.end-event', - '!ppend' + '!append.end-event' ]); })); @@ -344,8 +338,7 @@ describe('features - context-pad', function() { 'connect', 'append.text-annotation', 'replace', - '!append.end-event', - '!append' + '!append.end-event' ]); })); @@ -355,8 +348,7 @@ describe('features - context-pad', function() { expectContextPadEntries('Group_1', [ 'append.text-annotation', 'delete', - '!replace', - '!append' + '!replace' ]); })); @@ -367,8 +359,7 @@ describe('features - context-pad', function() { 'connect', 'delete', '!replace', - '!append.text-annotation', - '!append' + '!append.text-annotation' ]); })); @@ -379,8 +370,7 @@ describe('features - context-pad', function() { 'append.text-annotation', 'delete', 'replace', - '!connect', - '!append' + '!connect' ]); })); @@ -620,83 +610,6 @@ describe('features - context-pad', function() { }); - describe('append', function() { - - var diagramXML = require('../../../fixtures/bpmn/simple.bpmn'); - - beforeEach(bootstrapModeler(diagramXML, { - modules: testModules - })); - - - it('should show append menu in the correct position', inject(function(elementRegistry, contextPad) { - - // given - var element = elementRegistry.get('StartEvent_1'), - padding = { y: 1, x: 5 }, - padMenuRect, - replaceMenuRect; - - contextPad.open(element); - - // when - contextPad.trigger('click', padEvent('append')); - - padMenuRect = contextPad.getPad(element).html.getBoundingClientRect(); - replaceMenuRect = getPopupMenu().getBoundingClientRect(); - - // then - expect(replaceMenuRect.left).to.be.at.most(padMenuRect.right + padding.x); - expect(replaceMenuRect.top).to.be.at.most(padMenuRect.top + padding.y); - })); - - - it('should hide wrench if replacement is disallowed', inject( - function(elementRegistry, contextPad, customRules) { - - // given - var element = elementRegistry.get('StartEvent_1'); - - // disallow replacement - customRules.addRule('shape.append', function(context) { - return !is(context.element, 'bpmn:StartEvent'); - }); - - // when - contextPad.open(element); - - var padNode = contextPad.getPad(element).html; - - // then - expect(padEntry(padNode, 'append')).not.to.exist; - } - )); - - - it('should show wrench if replacement is allowed', inject( - function(elementRegistry, contextPad, customRules) { - - // given - var element = elementRegistry.get('Task_1'); - - // disallow replacement - customRules.addRule('shape.append', function(context) { - return !is(context.element, 'bpmn:StartEvent'); - }); - - // when - contextPad.open(element); - - var padNode = contextPad.getPad(element).html; - - // then - expect(padEntry(padNode, 'append')).to.exist; - } - )); - - }); - - describe('auto place', function() { var diagramXML = require('../../../fixtures/bpmn/simple.bpmn'); diff --git a/test/spec/features/create-append-anything/AppendContextPadProviderSpec.js b/test/spec/features/create-append-anything/AppendContextPadProviderSpec.js new file mode 100644 index 0000000000..c4331be450 --- /dev/null +++ b/test/spec/features/create-append-anything/AppendContextPadProviderSpec.js @@ -0,0 +1,133 @@ +import { + bootstrapModeler, + getBpmnJS, + inject +} from 'test/TestHelper'; + +import { + query as domQuery +} from 'min-dom'; + +import createAppendAything from 'lib/features/create-append-anything'; +import modelingModule from 'lib/features/modeling'; +import coreModule from 'lib/core'; +import customRules from '../../../util/custom-rules'; + +import { + is +} from 'lib/util/ModelUtil'; + + +describe('features/create-append-anything - append menu provider', function() { + + var testModules = [ + modelingModule, + coreModule, + customRules, + createAppendAything + ]; + + + describe('append', function() { + + var diagramXML = require('../../../fixtures/bpmn/simple.bpmn'); + + beforeEach(bootstrapModeler(diagramXML, { + modules: testModules + })); + + + it('should show append menu in the correct position', inject(function(elementRegistry, contextPad) { + + // given + var element = elementRegistry.get('StartEvent_1'), + padding = { y: 1, x: 5 }, + padMenuRect, + replaceMenuRect; + + contextPad.open(element); + + // when + contextPad.trigger('click', padEvent('append')); + + padMenuRect = contextPad.getPad(element).html.getBoundingClientRect(); + replaceMenuRect = getPopupMenu().getBoundingClientRect(); + + // then + expect(replaceMenuRect.left).to.be.at.most(padMenuRect.right + padding.x); + expect(replaceMenuRect.top).to.be.at.most(padMenuRect.top + padding.y); + })); + + + it('should hide icon if append is disallowed', inject( + function(elementRegistry, contextPad, customRules) { + + // given + var element = elementRegistry.get('StartEvent_1'); + + // disallow append + customRules.addRule('shape.append', function(context) { + return !is(context.element, 'bpmn:StartEvent'); + }); + + // when + contextPad.open(element); + + var padNode = contextPad.getPad(element).html; + + // then + expect(padEntry(padNode, 'append')).not.to.exist; + } + )); + + + it('should show icon if append is allowed', inject( + function(elementRegistry, contextPad, customRules) { + + // given + var element = elementRegistry.get('Task_1'); + + // disallow append + customRules.addRule('shape.append', function(context) { + return !is(context.element, 'bpmn:StartEvent'); + }); + + // when + contextPad.open(element); + + var padNode = contextPad.getPad(element).html; + + // then + expect(padEntry(padNode, 'append')).to.exist; + } + )); + + }); +}); + + +// helper ////////////////////////////////////////////////////////////////////// +function padEntry(element, name) { + return domQuery('[data-action="' + name + '"]', element); +} + +function padEvent(entry) { + + return getBpmnJS().invoke(function(overlays) { + + var target = padEntry(overlays._overlayRoot, entry); + + return { + target: target, + preventDefault: function() {}, + clientX: 100, + clientY: 100 + }; + }); +} + +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/popup-menu/AppendMenuProvider.bpmn b/test/spec/features/create-append-anything/AppendMenuProvider.bpmn similarity index 100% rename from test/spec/features/popup-menu/AppendMenuProvider.bpmn rename to test/spec/features/create-append-anything/AppendMenuProvider.bpmn diff --git a/test/spec/features/popup-menu/AppendMenuProviderSpec.js b/test/spec/features/create-append-anything/AppendMenuProviderSpec.js similarity index 98% rename from test/spec/features/popup-menu/AppendMenuProviderSpec.js rename to test/spec/features/create-append-anything/AppendMenuProviderSpec.js index 413d2ea404..e5f973d03c 100644 --- a/test/spec/features/popup-menu/AppendMenuProviderSpec.js +++ b/test/spec/features/create-append-anything/AppendMenuProviderSpec.js @@ -11,7 +11,7 @@ import { import coreModule from 'lib/core'; import modelingModule from 'lib/features/modeling'; import autoPlace from 'lib/features/auto-place'; -import appendMenuProvider from 'lib/features/popup-menu'; +import createAppendAything from 'lib/features/create-append-anything'; import customRulesModule from '../../../util/custom-rules'; import { @@ -22,7 +22,7 @@ import { import { getBusinessObject } from 'lib/util/ModelUtil'; -describe('features/popup-menu - append menu provider', function() { +describe('features/create-append-anything - append menu provider', function() { var diagramXML = require('./AppendMenuProvider.bpmn'); @@ -30,7 +30,7 @@ describe('features/popup-menu - append menu provider', function() { coreModule, modelingModule, autoPlace, - appendMenuProvider, + createAppendAything, customRulesModule ]; From 57068d1552f65c224ab5aa6f3c3789dbd31b0b70 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Mon, 23 Jan 2023 15:05:55 +0100 Subject: [PATCH 226/989] feat(create-append-anything): encapsulate editor actions --- .../CreateAppendEditorActions.js | 41 +++++++++ lib/features/create-append-anything/index.js | 3 + .../editor-actions/BpmnEditorActions.js | 7 -- test/spec/ModelerSpec.js | 4 +- .../CreateAppendEditorActionsSpec.js | 85 +++++++++++++++++++ .../editor-actions/BpmnEditorActionsSpec.js | 69 --------------- 6 files changed, 131 insertions(+), 78 deletions(-) create mode 100644 lib/features/create-append-anything/CreateAppendEditorActions.js create mode 100644 test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js diff --git a/lib/features/create-append-anything/CreateAppendEditorActions.js b/lib/features/create-append-anything/CreateAppendEditorActions.js new file mode 100644 index 0000000000..2145fb2a05 --- /dev/null +++ b/lib/features/create-append-anything/CreateAppendEditorActions.js @@ -0,0 +1,41 @@ +import { assign } from 'min-dash'; + +/** + * Registers and executes BPMN specific editor actions. + * + * @param {Injector} injector + */ +export default function CreateAppendEditorActions(injector) { + this._injector = injector; + + this.registerActions(); +} + +CreateAppendEditorActions.$inject = [ + 'injector' +]; + +/** + * Register actions. + * + * @param {Injector} injector + */ +CreateAppendEditorActions.prototype.registerActions = function() { + var editorActions = this._injector.get('editorActions', false); + var selection = this._injector.get('selection', false); + var contextPad = this._injector.get('contextPad', false); + + const actions = {}; + + // append + if (selection && contextPad) { + assign(actions, { + 'appendElement': function(event) { + contextPad.triggerEntry('append', 'click', event); + } } + ); + } + + editorActions && editorActions.register(actions); + +}; diff --git a/lib/features/create-append-anything/index.js b/lib/features/create-append-anything/index.js index 5a1740889e..814ee2e94e 100644 --- a/lib/features/create-append-anything/index.js +++ b/lib/features/create-append-anything/index.js @@ -5,6 +5,7 @@ import ContextPadModule from 'diagram-js/lib/features/context-pad'; import CreateMenuProvider from './CreateMenuProvider'; import CreatePaletteProvider from './CreatePaletteProvider'; +import CreateAppendEditorActions from './CreateAppendEditorActions'; import AppendMenuProvider from './AppendMenuProvider'; import AppendContextPadProvider from './AppendContextPadProvider'; @@ -18,11 +19,13 @@ export default { __init__: [ 'createMenuProvider', 'createPaletteProvider', + 'createAppendEditorActions', 'appendMenuProvider', 'appendContextPadProvider' ], createMenuProvider: [ 'type', CreateMenuProvider ], createPaletteProvider: [ 'type', CreatePaletteProvider ], + createAppendEditorActions: [ 'type', CreateAppendEditorActions ], appendMenuProvider: [ 'type', AppendMenuProvider ], appendContextPadProvider: [ 'type', AppendContextPadProvider ] }; diff --git a/lib/features/editor-actions/BpmnEditorActions.js b/lib/features/editor-actions/BpmnEditorActions.js index e4b5f48783..049a8b6027 100644 --- a/lib/features/editor-actions/BpmnEditorActions.js +++ b/lib/features/editor-actions/BpmnEditorActions.js @@ -10,7 +10,6 @@ import { getBBox } from 'diagram-js/lib/util/Elements'; - /** * Registers and executes BPMN specific editor actions. * @@ -181,10 +180,4 @@ BpmnEditorActions.prototype._registerDefaultActions = function(injector) { }); } - if (selection && contextPad) { - this._registerAction('appendElement', function(event) { - contextPad.triggerEntry('append', 'click', event); - }); - } - }; diff --git a/test/spec/ModelerSpec.js b/test/spec/ModelerSpec.js index 38d56ad269..b5f327a035 100644 --- a/test/spec/ModelerSpec.js +++ b/test/spec/ModelerSpec.js @@ -264,6 +264,7 @@ describe('Modeler', function() { // given var expectedActions = [ + 'appendElement', 'undo', 'redo', 'copy', @@ -284,8 +285,7 @@ describe('Modeler', function() { 'directEditing', 'find', 'moveToOrigin', - 'replaceElement', - 'appendElement' + 'replaceElement' ]; var modeler = new Modeler(); diff --git a/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js b/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js new file mode 100644 index 0000000000..c6026fea02 --- /dev/null +++ b/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js @@ -0,0 +1,85 @@ +import { + bootstrapModeler, + inject +} from 'test/TestHelper'; + +import selectionModule from 'diagram-js/lib/features/selection'; +import modelingModule from 'lib/features/modeling'; +import coreModule from 'lib/core'; +import editorActionsModule from 'diagram-js/lib/features/editor-actions'; +import createAppendAnything from 'lib/features/create-append-anything'; + +var basicXML = require('../../../fixtures/bpmn/nested-subprocesses.bpmn'); + + +describe('features/create-append-anything - editor actions', function() { + + describe('#appendElement', function() { + + beforeEach(bootstrapModeler(basicXML, { + modules: [ + selectionModule, + modelingModule, + coreModule, + editorActionsModule, + createAppendAnything + ] + })); + + + it('should open append 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('appendElement', {}); + + // then + expect(changedSpy).to.have.been.called; + })); + + + it('should not open append element if no selection', inject(function(editorActions, eventBus) { + + // given + var changedSpy = sinon.spy(); + + // when + eventBus.once('popupMenu.open', changedSpy); + + editorActions.trigger('appendElement', {}); + + // then + expect(changedSpy).to.not.have.been.called; + })); + + + it('should not open append 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('appendElement', {}); + + // then + expect(changedSpy).to.not.have.been.called; + })); + + }); + +}); diff --git a/test/spec/features/editor-actions/BpmnEditorActionsSpec.js b/test/spec/features/editor-actions/BpmnEditorActionsSpec.js index 5abb45d69a..8bd5166031 100644 --- a/test/spec/features/editor-actions/BpmnEditorActionsSpec.js +++ b/test/spec/features/editor-actions/BpmnEditorActionsSpec.js @@ -281,73 +281,4 @@ describe('features/editor-actions', function() { }); - - describe('#appendElement', function() { - - beforeEach(bootstrapModeler(basicXML, { - modules: [ - selectionModule, - bpmnEditorActionsModule, - modelingModule, - coreModule, - contextPad - ] - })); - - - it('should open append 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('appendElement', {}); - - // then - expect(changedSpy).to.have.been.called; - })); - - - it('should not open append element if no selection', inject(function(editorActions, eventBus) { - - // given - var changedSpy = sinon.spy(); - - // when - eventBus.once('popupMenu.open', changedSpy); - - editorActions.trigger('appendElement', {}); - - // then - expect(changedSpy).to.not.have.been.called; - })); - - - it('should not open append 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('appendElement', {}); - - // then - expect(changedSpy).to.not.have.been.called; - })); - - }); - }); From c314d68508a33c56d40b3bec3ae134a59f6e6f90 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Mon, 23 Jan 2023 15:06:16 +0100 Subject: [PATCH 227/989] feat(create-append-anything): encapsulate keyboard bindings --- .../CreateAppendKeyboardBindings.js | 74 ++++++++++++++++++ lib/features/create-append-anything/index.js | 3 + lib/features/keyboard/BpmnKeyboardBindings.js | 18 ----- .../CreateAppendKeyboardBindingsSpec.js | 76 +++++++++++++++++++ .../keyboard/BpmnKeyboardBindingsSpec.js | 23 +----- 5 files changed, 154 insertions(+), 40 deletions(-) create mode 100644 lib/features/create-append-anything/CreateAppendKeyboardBindings.js create mode 100644 test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js diff --git a/lib/features/create-append-anything/CreateAppendKeyboardBindings.js b/lib/features/create-append-anything/CreateAppendKeyboardBindings.js new file mode 100644 index 0000000000..6c1282fb95 --- /dev/null +++ b/lib/features/create-append-anything/CreateAppendKeyboardBindings.js @@ -0,0 +1,74 @@ +import inherits from 'inherits-browser'; + +import KeyboardBindings from 'diagram-js/lib/features/keyboard/KeyboardBindings'; + + +/** + * BPMN 2.0 specific keyboard bindings. + * + * @param {Injector} injector + */ +export default function CreateAppendKeyboardBindings(injector) { + + this._injector = injector; + this._keyboard = this._injector.get('keyboard', false); + this._editorActions = this._injector.get('editorActions', false); + + if (this._keyboard) { + this._injector.invoke(KeyboardBindings, this); + } +} + +inherits(CreateAppendKeyboardBindings, KeyboardBindings); + +CreateAppendKeyboardBindings.$inject = [ + 'injector' +]; + + +/** + * Register available keyboard bindings. + * + * @param {Keyboard} keyboard + * @param {EditorActions} editorActions + */ +CreateAppendKeyboardBindings.prototype.registerBindings = function() { + + var keyboard = this._keyboard; + var editorActions = this._editorActions; + + // inherit default bindings + KeyboardBindings.prototype.registerBindings.call(this, keyboard, editorActions); + + /** + * Add keyboard binding if respective editor action + * is registered. + * + * @param {string} action name + * @param {Function} fn that implements the key binding + */ + function addListener(action, fn) { + + if (editorActions && editorActions.isRegistered(action)) { + keyboard && keyboard.addListener(fn); + } + } + + // activate append element + // A + addListener('appendElement', function(context) { + + var event = context.keyEvent; + + if (keyboard && keyboard.hasModifier(event)) { + return; + } + + if (keyboard && keyboard.isKey([ 'a', 'A' ], event)) { + editorActions && editorActions.trigger('appendElement', event); + + return true; + } + }); + +}; \ No newline at end of file diff --git a/lib/features/create-append-anything/index.js b/lib/features/create-append-anything/index.js index 814ee2e94e..547afcbafa 100644 --- a/lib/features/create-append-anything/index.js +++ b/lib/features/create-append-anything/index.js @@ -6,6 +6,7 @@ import ContextPadModule from 'diagram-js/lib/features/context-pad'; import CreateMenuProvider from './CreateMenuProvider'; import CreatePaletteProvider from './CreatePaletteProvider'; import CreateAppendEditorActions from './CreateAppendEditorActions'; +import CreateAppendKeyboardBindings from './CreateAppendKeyboardBindings'; import AppendMenuProvider from './AppendMenuProvider'; import AppendContextPadProvider from './AppendContextPadProvider'; @@ -20,12 +21,14 @@ export default { 'createMenuProvider', 'createPaletteProvider', 'createAppendEditorActions', + 'createAppendKeyboardBindings', 'appendMenuProvider', 'appendContextPadProvider' ], createMenuProvider: [ 'type', CreateMenuProvider ], createPaletteProvider: [ 'type', CreatePaletteProvider ], createAppendEditorActions: [ 'type', CreateAppendEditorActions ], + createAppendKeyboardBindings: [ 'type', CreateAppendKeyboardBindings ], appendMenuProvider: [ 'type', AppendMenuProvider ], appendContextPadProvider: [ 'type', AppendContextPadProvider ] }; diff --git a/lib/features/keyboard/BpmnKeyboardBindings.js b/lib/features/keyboard/BpmnKeyboardBindings.js index 8659ad0721..819f9be915 100644 --- a/lib/features/keyboard/BpmnKeyboardBindings.js +++ b/lib/features/keyboard/BpmnKeyboardBindings.js @@ -172,22 +172,4 @@ BpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActio } }); - - // activate append element - // A - addListener('appendElement', function(context) { - - var event = context.keyEvent; - - if (keyboard.hasModifier(event)) { - return; - } - - if (keyboard.isKey([ 'a', 'A' ], event)) { - editorActions.trigger('appendElement', event); - - return true; - } - }); - }; \ No newline at end of file diff --git a/test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js b/test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js new file mode 100644 index 0000000000..94b77ab449 --- /dev/null +++ b/test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js @@ -0,0 +1,76 @@ +import { + bootstrapViewer, + inject +} from 'test/TestHelper'; + +import { forEach } from 'min-dash'; + +import coreModule from 'lib/core'; +import modelingModule from 'lib/features/modeling'; +import keyboardModule from 'diagram-js/lib/features/keyboard'; +import createAppendAnything from 'lib/features/create-append-anything'; +import editorActions from 'diagram-js/lib/features/editor-actions'; + +import { + createKeyEvent +} from 'test/util/KeyEvents'; + + +describe('features/create-append-anything - keyboard bindings', function() { + + var diagramXML = require('../../../fixtures/bpmn/simple.bpmn'); + + var testModules = [ + coreModule, + modelingModule, + keyboardModule, + editorActions, + createAppendAnything + ]; + + beforeEach(bootstrapViewer(diagramXML, { modules: testModules })); + + + describe('create append keyboard bindings', function() { + + it('should include triggers inside editorActions', inject(function(editorActions) { + + // given + var expectedActions = [ + 'appendElement' + ]; + var actualActions = editorActions.getActions(); + + // then + expect( + expectedActions.every(action => actualActions.includes(action)) + ).to.be.true; + })); + + + forEach([ 'a', 'A' ], function(key) { + + it('should trigger append 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/keyboard/BpmnKeyboardBindingsSpec.js b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js index c78965f817..24c181a5f1 100644 --- a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js +++ b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js @@ -68,8 +68,7 @@ describe('features/keyboard', function() { 'directEditing', 'find', 'moveToOrigin', - 'replaceElement', - 'appendElement' + 'replaceElement' ]; // then @@ -179,26 +178,6 @@ describe('features/keyboard', function() { }) ); - - it('should trigger append 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; - })); - }); From 4a6b252167e52766f1c48d0db7c45e78186d90cf Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 24 Jan 2023 14:51:35 +0100 Subject: [PATCH 228/989] deps: udpate to diagram-js@11.6.0 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c9fd83fb8e..191a3f657a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.5.0", + "diagram-js": "^11.6.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3087,9 +3087,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.5.0.tgz", - "integrity": "sha512-lO5Ux1Heh6yM+uPytRn3gh92c5mjIFnLPEKoLsKGigUtpw8bXtFRByv1raSava+FR7l8F5iLV+v6kRrI9mTbzQ==", + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.6.0.tgz", + "integrity": "sha512-84qw+D3WVMRP25DSRSUSaXp1he65e49EXP59mTUh3OSBPllSL/5s28Cx3uyCt6441Sw11LTQ0ZujSvCt8r6V+A==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", @@ -14781,9 +14781,9 @@ "dev": true }, "diagram-js": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.5.0.tgz", - "integrity": "sha512-lO5Ux1Heh6yM+uPytRn3gh92c5mjIFnLPEKoLsKGigUtpw8bXtFRByv1raSava+FR7l8F5iLV+v6kRrI9mTbzQ==", + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.6.0.tgz", + "integrity": "sha512-84qw+D3WVMRP25DSRSUSaXp1he65e49EXP59mTUh3OSBPllSL/5s28Cx3uyCt6441Sw11LTQ0ZujSvCt8r6V+A==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", diff --git a/package.json b/package.json index a4efc2f446..a21c697dcd 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.5.0", + "diagram-js": "^11.6.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From 1574e3572e562bcf2c3e1498c67b3c33f6cee60a Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 24 Jan 2023 15:01:25 +0100 Subject: [PATCH 229/989] feat(create-append-anything): add create shortcut Trigger create with 'n' and 'a' if no selection Closes #1814 --- .../CreateAppendEditorActions.js | 10 +++ .../CreateAppendKeyboardBindings.js | 27 +++++- test/spec/ModelerSpec.js | 1 + .../CreateAppendEditorActionsSpec.js | 29 ++++++ .../CreateAppendKeyboardBindingsSpec.js | 90 ++++++++++++++++++- 5 files changed, 153 insertions(+), 4 deletions(-) diff --git a/lib/features/create-append-anything/CreateAppendEditorActions.js b/lib/features/create-append-anything/CreateAppendEditorActions.js index 2145fb2a05..6cffded855 100644 --- a/lib/features/create-append-anything/CreateAppendEditorActions.js +++ b/lib/features/create-append-anything/CreateAppendEditorActions.js @@ -24,6 +24,7 @@ CreateAppendEditorActions.prototype.registerActions = function() { var editorActions = this._injector.get('editorActions', false); var selection = this._injector.get('selection', false); var contextPad = this._injector.get('contextPad', false); + var palette = this._injector.get('palette', false); const actions = {}; @@ -36,6 +37,15 @@ CreateAppendEditorActions.prototype.registerActions = function() { ); } + // create + if (palette) { + assign(actions, { + 'createElement': function(event) { + palette.triggerEntry('create', 'click', event); + } } + ); + } + editorActions && editorActions.register(actions); }; diff --git a/lib/features/create-append-anything/CreateAppendKeyboardBindings.js b/lib/features/create-append-anything/CreateAppendKeyboardBindings.js index 6c1282fb95..a09c7d3734 100644 --- a/lib/features/create-append-anything/CreateAppendKeyboardBindings.js +++ b/lib/features/create-append-anything/CreateAppendKeyboardBindings.js @@ -13,6 +13,7 @@ export default function CreateAppendKeyboardBindings(injector) { this._injector = injector; this._keyboard = this._injector.get('keyboard', false); this._editorActions = this._injector.get('editorActions', false); + this._selection = this._injector.get('selection', false); if (this._keyboard) { this._injector.invoke(KeyboardBindings, this); @@ -36,6 +37,7 @@ CreateAppendKeyboardBindings.prototype.registerBindings = function() { var keyboard = this._keyboard; var editorActions = this._editorActions; + var selection = this._selection; // inherit default bindings KeyboardBindings.prototype.registerBindings.call(this, keyboard, editorActions); @@ -54,7 +56,7 @@ CreateAppendKeyboardBindings.prototype.registerBindings = function() { } } - // activate append element + // activate append/create element // A addListener('appendElement', function(context) { @@ -65,7 +67,28 @@ CreateAppendKeyboardBindings.prototype.registerBindings = function() { } if (keyboard && keyboard.isKey([ 'a', 'A' ], event)) { - editorActions && editorActions.trigger('appendElement', event); + + if (selection && selection.get().length == 1) { + editorActions && editorActions.trigger('appendElement', event); + } else { + editorActions && editorActions.trigger('createElement', event); + } + + return true; + } + }); + + // N + addListener('createElement', function(context) { + + var event = context.keyEvent; + + if (keyboard && keyboard.hasModifier(event)) { + return; + } + + if (keyboard && keyboard.isKey([ 'n', 'N' ], event)) { + editorActions && editorActions.trigger('createElement', event); return true; } diff --git a/test/spec/ModelerSpec.js b/test/spec/ModelerSpec.js index b5f327a035..10dfb5e93b 100644 --- a/test/spec/ModelerSpec.js +++ b/test/spec/ModelerSpec.js @@ -265,6 +265,7 @@ describe('Modeler', function() { // given var expectedActions = [ 'appendElement', + 'createElement', 'undo', 'redo', 'copy', diff --git a/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js b/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js index c6026fea02..051ddb06de 100644 --- a/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js +++ b/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js @@ -82,4 +82,33 @@ describe('features/create-append-anything - editor actions', function() { }); + + describe('#createElement', function() { + + beforeEach(bootstrapModeler(basicXML, { + modules: [ + selectionModule, + modelingModule, + coreModule, + editorActionsModule, + createAppendAnything + ] + })); + + + it('should open create element', inject(function(editorActions, eventBus) { + + // given + var changedSpy = sinon.spy(); + eventBus.once('popupMenu.open', changedSpy); + + // when + editorActions.trigger('createElement', {}); + + // then + expect(changedSpy).to.have.been.called; + })); + + }); + }); diff --git a/test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js b/test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js index 94b77ab449..7bac89aacf 100644 --- a/test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js +++ b/test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js @@ -1,6 +1,7 @@ import { bootstrapViewer, - inject + inject, + getBpmnJS } from 'test/TestHelper'; import { forEach } from 'min-dash'; @@ -15,6 +16,10 @@ import { createKeyEvent } from 'test/util/KeyEvents'; +import { + query as domQuery +} from 'min-dom'; + describe('features/create-append-anything - keyboard bindings', function() { @@ -37,7 +42,8 @@ describe('features/create-append-anything - keyboard bindings', function() { // given var expectedActions = [ - 'appendElement' + 'appendElement', + 'createElement' ]; var actualActions = editorActions.getActions(); @@ -67,6 +73,77 @@ describe('features/create-append-anything - keyboard bindings', function() { // then expect(popupMenu.open).to.have.been.calledOnce; + expect(isMenu('bpmn-append')).to.be.true; + })); + + + it('should trigger create menu', + inject(function(keyboard, popupMenu) { + + sinon.spy(popupMenu, 'open'); + + // given + var e = createKeyEvent(key); + + // when + keyboard._keyHandler(e); + + // then + expect(popupMenu.open).to.have.been.calledOnce; + expect(isMenu('bpmn-create')).to.be.true; + })); + + + it('should not trigger create or append menus', + inject(function(keyboard, popupMenu) { + + sinon.spy(popupMenu, 'open'); + + // given + var e = createKeyEvent(key, { ctrlKey: true }); + + // when + keyboard._keyHandler(e); + + // then + expect(popupMenu.open).to.not.have.been.called; + })); + + }); + + + forEach([ 'n', 'N' ], function(key) { + + it('should trigger create menu', + inject(function(keyboard, popupMenu) { + + sinon.spy(popupMenu, 'open'); + + // given + var e = createKeyEvent(key); + + // when + keyboard._keyHandler(e); + + // then + expect(popupMenu.open).to.have.been.calledOnce; + expect(isMenu('bpmn-create')).to.be.true; + })); + + + it('should not trigger create menu', + inject(function(keyboard, popupMenu) { + + sinon.spy(popupMenu, 'open'); + + // given + var e = createKeyEvent(key, { ctrlKey: true }); + + // when + keyboard._keyHandler(e); + + // then + expect(popupMenu.open).to.not.have.been.called; })); }); @@ -74,3 +151,12 @@ describe('features/create-append-anything - keyboard bindings', function() { }); }); + + +// helpers ////////////////////// +function isMenu(menuId) { + const popup = getBpmnJS().get('popupMenu'); + const popupElement = popup._current && domQuery('.djs-popup', popup._current.container); + + return popupElement.classList.contains(menuId); +} \ No newline at end of file From 089ed310425e779f679c064a81150e2e4bb23abf Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 24 Jan 2023 15:19:31 +0100 Subject: [PATCH 230/989] feat(create-append-anything): create supports keyboard --- .../CreatePaletteProvider.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/features/create-append-anything/CreatePaletteProvider.js b/lib/features/create-append-anything/CreatePaletteProvider.js index afdd2eac7e..a62ffc4fff 100644 --- a/lib/features/create-append-anything/CreatePaletteProvider.js +++ b/lib/features/create-append-anything/CreatePaletteProvider.js @@ -8,11 +8,12 @@ import { query as domQuery } from 'min-dom'; /** * A palette provider for the create elements menu. */ -export default function CreatePaletteProvider(palette, translate, popupMenu, canvas) { +export default function CreatePaletteProvider(palette, translate, popupMenu, canvas, mouse) { this._translate = translate; this._popupMenu = popupMenu; this._canvas = canvas; + this._mouse = mouse; palette.registerProvider(800,this); } @@ -21,7 +22,8 @@ CreatePaletteProvider.$inject = [ 'palette', 'translate', 'popupMenu', - 'canvas' + 'canvas', + 'mouse' ]; @@ -29,12 +31,18 @@ CreatePaletteProvider.prototype.getPaletteEntries = function(element) { const actions = {}, translate = this._translate, popupMenu = this._popupMenu, - canvas = this._canvas; + canvas = this._canvas, + mouse = this._mouse; const getPosition = (event) => { const X_OFFSET = 35; const Y_OFFSET = 10; + if (event instanceof KeyboardEvent) { + event = mouse.getLastMoveEvent(); + return { x: event.x, y: event.y }; + } + const target = event && event.target || domQuery('.djs-palette [data-action="create"]'); const targetPosition = target.getBoundingClientRect(); From 76558cc7209b2571880693db9d49769cdf850b24 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 25 Jan 2023 09:27:24 +0100 Subject: [PATCH 231/989] chore(create-append-anything): move rules to dedicated module --- .../create-append-anything/AppendRules.js | 71 ++++++++++++++++ lib/features/create-append-anything/index.js | 7 +- lib/features/rules/BpmnRules.js | 31 ------- .../create-append-anything/AppendRulesSpec.js | 82 +++++++++++++++++++ test/spec/features/rules/BpmnRulesSpec.js | 69 ---------------- 5 files changed, 158 insertions(+), 102 deletions(-) create mode 100644 lib/features/create-append-anything/AppendRules.js create mode 100644 test/spec/features/create-append-anything/AppendRulesSpec.js diff --git a/lib/features/create-append-anything/AppendRules.js b/lib/features/create-append-anything/AppendRules.js new file mode 100644 index 0000000000..4afec66a4f --- /dev/null +++ b/lib/features/create-append-anything/AppendRules.js @@ -0,0 +1,71 @@ +import { + find, +} from 'min-dash'; + +import inherits from 'inherits-browser'; + +import { + is, + getBusinessObject +} from '../../util/ModelUtil'; + +import { + isAny +} from '../modeling/util/ModelingUtil'; + +import RuleProvider from 'diagram-js/lib/features/rules/RuleProvider'; + + +/** + * Append anything modeling rules + */ +export default function AppendRules(eventBus) { + RuleProvider.call(this, eventBus); +} + +inherits(AppendRules, RuleProvider); + +AppendRules.$inject = [ + 'eventBus' +]; + +AppendRules.prototype.init = function() { + this.addRule('shape.append', function(context) { + + var source = context.element; + + const businessObject = getBusinessObject(source); + + if (isAny(source, [ + 'bpmn:EndEvent', + 'bpmn:Group', + 'bpmn:TextAnnotation', + 'bpmn:SequenceFlow', + 'bpmn:Lane', + 'bpmn:Participant', + 'bpmn:DataStoreReference', + 'bpmn:DataObjectReference' + ])) { + return false; + } + + if (is(source, 'bpmn:IntermediateThrowEvent') && hasEventDefinition(source, 'bpmn:LinkEventDefinition')) { + return false; + } + + if (is(source, 'bpmn:SubProcess') && businessObject.triggeredByEvent) { + return false; + } + }); + +}; + + +// helpers ////////////// +function hasEventDefinition(element, eventDefinition) { + var bo = getBusinessObject(element); + + return !!find(bo.eventDefinitions || [], function(definition) { + return is(definition, eventDefinition); + }); +} \ No newline at end of file diff --git a/lib/features/create-append-anything/index.js b/lib/features/create-append-anything/index.js index 547afcbafa..3704c46614 100644 --- a/lib/features/create-append-anything/index.js +++ b/lib/features/create-append-anything/index.js @@ -9,6 +9,7 @@ import CreateAppendEditorActions from './CreateAppendEditorActions'; import CreateAppendKeyboardBindings from './CreateAppendKeyboardBindings'; import AppendMenuProvider from './AppendMenuProvider'; import AppendContextPadProvider from './AppendContextPadProvider'; +import AppendRules from './AppendRules'; export default { __depends__: [ @@ -23,12 +24,14 @@ export default { 'createAppendEditorActions', 'createAppendKeyboardBindings', 'appendMenuProvider', - 'appendContextPadProvider' + 'appendContextPadProvider', + 'appendRules' ], createMenuProvider: [ 'type', CreateMenuProvider ], createPaletteProvider: [ 'type', CreatePaletteProvider ], createAppendEditorActions: [ 'type', CreateAppendEditorActions ], createAppendKeyboardBindings: [ 'type', CreateAppendKeyboardBindings ], appendMenuProvider: [ 'type', AppendMenuProvider ], - appendContextPadProvider: [ 'type', AppendContextPadProvider ] + appendContextPadProvider: [ 'type', AppendContextPadProvider ], + appendRules: [ 'type', AppendRules ] }; diff --git a/lib/features/rules/BpmnRules.js b/lib/features/rules/BpmnRules.js index 50578dd474..6b252bdd0c 100644 --- a/lib/features/rules/BpmnRules.js +++ b/lib/features/rules/BpmnRules.js @@ -169,11 +169,6 @@ BpmnRules.prototype.init = function() { return canCopy(elements, element); }); - - this.addRule('shape.append', function(context) { - var element = context.element; - return canAppend(element); - }); }; BpmnRules.prototype.canConnectMessageFlow = canConnectMessageFlow; @@ -806,32 +801,6 @@ function canResize(shape, newBounds) { return false; } -function canAppend(source) { - - const businessObject = getBusinessObject(source); - - if (isAny(source, [ - 'bpmn:EndEvent', - 'bpmn:Group', - 'bpmn:TextAnnotation', - 'bpmn:SequenceFlow', - 'bpmn:Lane', - 'bpmn:Participant', - 'bpmn:DataStoreReference', - 'bpmn:DataObjectReference' - ])) { - return false; - } - - if (is(source, 'bpmn:IntermediateThrowEvent') && hasEventDefinition(source, 'bpmn:LinkEventDefinition')) { - return false; - } - - if (is(source, 'bpmn:SubProcess') && businessObject.triggeredByEvent) { - return false; - } -} - /** * Check, whether one side of the relationship * is a text annotation. diff --git a/test/spec/features/create-append-anything/AppendRulesSpec.js b/test/spec/features/create-append-anything/AppendRulesSpec.js new file mode 100644 index 0000000000..c99c4e9782 --- /dev/null +++ b/test/spec/features/create-append-anything/AppendRulesSpec.js @@ -0,0 +1,82 @@ +import { + bootstrapModeler, + inject +} from 'test/TestHelper'; + +import createAppendAnything from 'lib/features/create-append-anything'; +import modelingModule from 'lib/features/modeling'; +import coreModule from 'lib/core'; +import rulesModule from 'diagram-js/lib/features/rules'; + + +describe('features/create-append-anything - rules', function() { + + var testModules = [ modelingModule, coreModule, rulesModule, createAppendAnything ]; + + var testXML = require('./AppendMenuProvider.bpmn'); + + beforeEach(bootstrapModeler(testXML, { modules: testModules })); + + + describe('element append', function() { + + it('should not allow for given element types', inject(function(elementFactory, rules) { + + // given + var types = [ + 'bpmn:EndEvent', + 'bpmn:Group', + 'bpmn:TextAnnotation', + 'bpmn:SequenceFlow', + 'bpmn:Lane', + 'bpmn:Participant', + 'bpmn:DataStoreReference', + 'bpmn:DataObjectReference' + ]; + + // when + + var results = types.map(function(type) { + var element = elementFactory.createShape({ type: type }); + return rules.allowed('shape.append', { element }); + }); + + // then + results.forEach(function(result) { + expect(result).to.be.false; + }); + })); + + + it('should not allow for event subprocess', inject(function(elementFactory, rules) { + + // given + var element = elementFactory.createShape({ type: 'bpmn:SubProcess', triggeredByEvent: true }); + + // when + var result = rules.allowed('shape.append', { element }); + + // then + expect(result).to.be.false; + })); + + + it('should not allow for link intermediate throw event', inject(function(elementFactory, rules) { + + // given + var element = elementFactory.createShape({ + type: 'bpmn:IntermediateThrowEvent', + cancelActivity: false, + eventDefinitionType: 'bpmn:LinkEventDefinition' + }); + + // when + var result = rules.allowed('shape.append', { element }); + + // then + expect(result).to.be.false; + })); + + }); + +}); \ No newline at end of file diff --git a/test/spec/features/rules/BpmnRulesSpec.js b/test/spec/features/rules/BpmnRulesSpec.js index 50359ed846..90c2f3e145 100644 --- a/test/spec/features/rules/BpmnRulesSpec.js +++ b/test/spec/features/rules/BpmnRulesSpec.js @@ -2181,73 +2181,4 @@ describe('features/modeling/rules - BpmnRules', function() { }); - - describe('element append', function() { - - var testXML = require('../../../fixtures/bpmn/simple.bpmn'); - - beforeEach(bootstrapModeler(testXML, { modules: testModules })); - - - it('should not allow for given element types', inject(function(elementFactory, rules) { - - // given - var types = [ - 'bpmn:EndEvent', - 'bpmn:Group', - 'bpmn:TextAnnotation', - 'bpmn:SequenceFlow', - 'bpmn:Lane', - 'bpmn:Participant', - 'bpmn:DataStoreReference', - 'bpmn:DataObjectReference' - ]; - - // when - - var results = types.map(function(type) { - var element = elementFactory.createShape({ type: type }); - return rules.allowed('shape.append', { element }); - }); - - // then - results.forEach(function(result) { - expect(result).to.be.false; - }); - })); - - - it('should not allow for event subprocess', inject(function(elementFactory, rules) { - - // given - var element = elementFactory.createShape({ type: 'bpmn:SubProcess', triggeredByEvent: true }); - - // when - - var result = rules.allowed('shape.append', { element }); - - // then - expect(result).to.be.false; - })); - - - it('should not allow for link intermediate throw event', inject(function(elementFactory, rules) { - - // given - var element = elementFactory.createShape({ - type: 'bpmn:IntermediateThrowEvent', - cancelActivity: false, - eventDefinitionType: 'bpmn:LinkEventDefinition' - }); - - // when - - var result = rules.allowed('shape.append', { element }); - - // then - expect(result).to.be.false; - })); - - }); - }); From 99e753298af6500629a04e9051001cbd8a328b48 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 25 Jan 2023 12:56:23 +0100 Subject: [PATCH 232/989] fix(create-append-anything): disallow append menu in connections Closes #1813 --- .../create-append-anything/AppendRules.js | 9 +++- .../create-append-anything/AppendRules.bpmn | 51 +++++++++++++++++++ .../create-append-anything/AppendRulesSpec.js | 45 +++++++++++++++- 3 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 test/spec/features/create-append-anything/AppendRules.bpmn diff --git a/lib/features/create-append-anything/AppendRules.js b/lib/features/create-append-anything/AppendRules.js index 4afec66a4f..a3743aeea9 100644 --- a/lib/features/create-append-anything/AppendRules.js +++ b/lib/features/create-append-anything/AppendRules.js @@ -40,7 +40,6 @@ AppendRules.prototype.init = function() { 'bpmn:EndEvent', 'bpmn:Group', 'bpmn:TextAnnotation', - 'bpmn:SequenceFlow', 'bpmn:Lane', 'bpmn:Participant', 'bpmn:DataStoreReference', @@ -49,6 +48,10 @@ AppendRules.prototype.init = function() { return false; } + if (isConnection(source)) { + return false; + } + if (is(source, 'bpmn:IntermediateThrowEvent') && hasEventDefinition(source, 'bpmn:LinkEventDefinition')) { return false; } @@ -68,4 +71,8 @@ function hasEventDefinition(element, eventDefinition) { return !!find(bo.eventDefinitions || [], function(definition) { return is(definition, eventDefinition); }); +} + +function isConnection(element) { + return element.waypoints; } \ No newline at end of file diff --git a/test/spec/features/create-append-anything/AppendRules.bpmn b/test/spec/features/create-append-anything/AppendRules.bpmn new file mode 100644 index 0000000000..31d23e2e50 --- /dev/null +++ b/test/spec/features/create-append-anything/AppendRules.bpmn @@ -0,0 +1,51 @@ + + + + + + + + + + SequenceFlow + + + SequenceFlow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/spec/features/create-append-anything/AppendRulesSpec.js b/test/spec/features/create-append-anything/AppendRulesSpec.js index c99c4e9782..8c4bd01a9c 100644 --- a/test/spec/features/create-append-anything/AppendRulesSpec.js +++ b/test/spec/features/create-append-anything/AppendRulesSpec.js @@ -13,7 +13,7 @@ describe('features/create-append-anything - rules', function() { var testModules = [ modelingModule, coreModule, rulesModule, createAppendAnything ]; - var testXML = require('./AppendMenuProvider.bpmn'); + var testXML = require('./AppendRules.bpmn'); beforeEach(bootstrapModeler(testXML, { modules: testModules })); @@ -27,7 +27,6 @@ describe('features/create-append-anything - rules', function() { 'bpmn:EndEvent', 'bpmn:Group', 'bpmn:TextAnnotation', - 'bpmn:SequenceFlow', 'bpmn:Lane', 'bpmn:Participant', 'bpmn:DataStoreReference', @@ -77,6 +76,48 @@ describe('features/create-append-anything - rules', function() { expect(result).to.be.false; })); + + describe('connections', function() { + + it('should not allow for sequence flows', inject(function(elementRegistry, rules) { + + // given + var element = elementRegistry.get('SequenceFlow'); + + // when + const allowed = rules.allowed('shape.append', { element }); + + // then + expect(allowed).to.be.false; + })); + + + it('should not allow for associations', inject(function(elementRegistry, rules) { + + // given + var element = elementRegistry.get('Association'); + + // when + const allowed = rules.allowed('shape.append', { element }); + + // then + expect(allowed).to.be.false; + })); + + + it('should not allow for message flows', inject(function(elementRegistry, rules) { + + // given + var element = elementRegistry.get('MessageFlow'); + + // when + const allowed = rules.allowed('shape.append', { element }); + + // then + expect(allowed).to.be.false; + })); + + }); }); }); \ No newline at end of file From bc3102605056b75e96d4ce0044f696dccf28fe3c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 01:14:12 +0000 Subject: [PATCH 233/989] chore: update dependency mkdirp to v2 --- package-lock.json | 74 +++++++++++++++++++++++++++++++++++++---------- package.json | 2 +- 2 files changed, 60 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 191a3f657a..c46f0e2c5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,7 +51,7 @@ "karma-safari-launcher": "^1.0.0", "karma-sinon-chai": "^2.0.2", "karma-webpack": "^5.0.0", - "mkdirp": "^0.5.1", + "mkdirp": "^2.0.0", "mocha": "^10.1.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", @@ -2737,6 +2737,18 @@ "cpx": "bin/index.js" } }, + "node_modules/cpx/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/cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -7251,6 +7263,18 @@ "node": ">=0.12.0" } }, + "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", @@ -7736,15 +7760,18 @@ } }, "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz", + "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==", "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/mkdirp-classic": { @@ -14514,6 +14541,17 @@ "safe-buffer": "^5.0.1", "shell-quote": "^1.6.1", "subarg": "^1.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } } }, "cross-env": { @@ -17838,6 +17876,15 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "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", @@ -18304,13 +18351,10 @@ } }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz", + "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==", + "dev": true }, "mkdirp-classic": { "version": "0.5.3", diff --git a/package.json b/package.json index a21c697dcd..fda4f82009 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "karma-safari-launcher": "^1.0.0", "karma-sinon-chai": "^2.0.2", "karma-webpack": "^5.0.0", - "mkdirp": "^0.5.1", + "mkdirp": "^2.0.0", "mocha": "^10.1.0", "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", From a16ec532125b1214dd89aaf34ef5b4ff0d26cb07 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 31 Jan 2023 09:37:18 +0100 Subject: [PATCH 234/989] deps: update to diagram-js@11.7.0 Closes #1816 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c46f0e2c5e..d6749d8841 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.6.0", + "diagram-js": "^11.7.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3099,9 +3099,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.6.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.6.0.tgz", - "integrity": "sha512-84qw+D3WVMRP25DSRSUSaXp1he65e49EXP59mTUh3OSBPllSL/5s28Cx3uyCt6441Sw11LTQ0ZujSvCt8r6V+A==", + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.7.0.tgz", + "integrity": "sha512-NGXQzrYpcC8dZgUSpIT0KwAlCX1ncfiGJr9h6NnAP9ylx/PjQ1ywiLwWQa7nk7Rx63GtJghs6KNF5/sISpeTmw==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", @@ -14819,9 +14819,9 @@ "dev": true }, "diagram-js": { - "version": "11.6.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.6.0.tgz", - "integrity": "sha512-84qw+D3WVMRP25DSRSUSaXp1he65e49EXP59mTUh3OSBPllSL/5s28Cx3uyCt6441Sw11LTQ0ZujSvCt8r6V+A==", + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.7.0.tgz", + "integrity": "sha512-NGXQzrYpcC8dZgUSpIT0KwAlCX1ncfiGJr9h6NnAP9ylx/PjQ1ywiLwWQa7nk7Rx63GtJghs6KNF5/sISpeTmw==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", diff --git a/package.json b/package.json index fda4f82009..13fff0a5bf 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.6.0", + "diagram-js": "^11.7.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From a893d30272d7553e5c4bc421d1e2912476a57222 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 22:10:03 +0000 Subject: [PATCH 235/989] chore: update dependency bpmn-font to ^0.11.0 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index d6749d8841..6cec8991fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@rollup/plugin-terser": "^0.1.0", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", - "bpmn-font": "^0.10.0", + "bpmn-font": "^0.11.0", "camunda-bpmn-moddle": "^4.0.1", "chai": "4.1.2", "chai-match": "^1.1.1", @@ -2191,9 +2191,9 @@ } }, "node_modules/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==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.11.0.tgz", + "integrity": "sha512-+Vi+QjAoMebRaSHdranAxLk+6k/4q2VIpS9VoXrU1bwMZpcnV+i04hNXGGV1fbrOZL4YscuDp49OvAErzU1Qpg==", "dev": true }, "node_modules/bpmn-moddle": { @@ -14116,9 +14116,9 @@ } }, "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==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.11.0.tgz", + "integrity": "sha512-+Vi+QjAoMebRaSHdranAxLk+6k/4q2VIpS9VoXrU1bwMZpcnV+i04hNXGGV1fbrOZL4YscuDp49OvAErzU1Qpg==", "dev": true }, "bpmn-moddle": { diff --git a/package.json b/package.json index 13fff0a5bf..32c730e05d 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "@rollup/plugin-terser": "^0.1.0", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", - "bpmn-font": "^0.10.0", + "bpmn-font": "^0.11.0", "camunda-bpmn-moddle": "^4.0.1", "chai": "4.1.2", "chai-match": "^1.1.1", From 85aa6a6a2637c81a632a4439e8ef8d11ef419a50 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 09:26:56 +0100 Subject: [PATCH 236/989] deps: update to bpmn-font@0.12.0 / simplify `connection-multi` icon Simplifies the connection icon. Related to https://github.com/camunda/camunda-modeler/issues/2282 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6cec8991fc..81421bdbc8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@rollup/plugin-terser": "^0.1.0", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", - "bpmn-font": "^0.11.0", + "bpmn-font": "^0.12.0", "camunda-bpmn-moddle": "^4.0.1", "chai": "4.1.2", "chai-match": "^1.1.1", @@ -2191,9 +2191,9 @@ } }, "node_modules/bpmn-font": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.11.0.tgz", - "integrity": "sha512-+Vi+QjAoMebRaSHdranAxLk+6k/4q2VIpS9VoXrU1bwMZpcnV+i04hNXGGV1fbrOZL4YscuDp49OvAErzU1Qpg==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.12.0.tgz", + "integrity": "sha512-JQBXri5Dp5q+YgvpeTKkETnwr2eCLlUjIjIBPDmAVP1hZD0dS2Om59IjX/FCTf+/Ja1+AJw6ClEGW6DFIaVLhQ==", "dev": true }, "node_modules/bpmn-moddle": { @@ -14116,9 +14116,9 @@ } }, "bpmn-font": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.11.0.tgz", - "integrity": "sha512-+Vi+QjAoMebRaSHdranAxLk+6k/4q2VIpS9VoXrU1bwMZpcnV+i04hNXGGV1fbrOZL4YscuDp49OvAErzU1Qpg==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.12.0.tgz", + "integrity": "sha512-JQBXri5Dp5q+YgvpeTKkETnwr2eCLlUjIjIBPDmAVP1hZD0dS2Om59IjX/FCTf+/Ja1+AJw6ClEGW6DFIaVLhQ==", "dev": true }, "bpmn-moddle": { diff --git a/package.json b/package.json index 32c730e05d..6acabd83ac 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "@rollup/plugin-terser": "^0.1.0", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", - "bpmn-font": "^0.11.0", + "bpmn-font": "^0.12.0", "camunda-bpmn-moddle": "^4.0.1", "chai": "4.1.2", "chai-match": "^1.1.1", From 39eb7a1e7f7695523c40b2580b68777fbc92c36b Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Sun, 29 Jan 2023 23:04:36 +0100 Subject: [PATCH 237/989] fix(popup-menu): handle `bpmn:DataObjectReference` without data object --- .../popup-menu/ReplaceMenuProvider.js | 9 +++++-- .../bpmn/features/replace/data-elements.bpmn | 8 ++++++ .../popup-menu/ReplaceMenuProviderSpec.js | 27 +++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/lib/features/popup-menu/ReplaceMenuProvider.js b/lib/features/popup-menu/ReplaceMenuProvider.js index 6ba9a85912..5432e1cf79 100644 --- a/lib/features/popup-menu/ReplaceMenuProvider.js +++ b/lib/features/popup-menu/ReplaceMenuProvider.js @@ -505,6 +505,12 @@ ReplaceMenuProvider.prototype._getDataObjectIsCollection = function(element) { var self = this; var translate = this._translate; + var dataObject = element.businessObject.dataObjectRef; + + if (!dataObject) { + return []; + } + function toggleIsCollection(event, entry) { self._modeling.updateModdleProperties( element, @@ -512,8 +518,7 @@ ReplaceMenuProvider.prototype._getDataObjectIsCollection = function(element) { { isCollection: !entry.active }); } - var dataObject = element.businessObject.dataObjectRef, - isCollection = dataObject.isCollection; + var isCollection = dataObject.isCollection; var dataObjectEntries = [ { 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/spec/features/popup-menu/ReplaceMenuProviderSpec.js b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js index adc9a02e94..e78d4cbafd 100644 --- a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js +++ b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js @@ -1518,6 +1518,20 @@ describe('features/popup-menu - replace menu provider', function() { 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; + })); + }); @@ -1541,6 +1555,19 @@ describe('features/popup-menu - replace menu provider', function() { 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; + })); + }); From 81799261b8074df57861742cf15e796370c5e744 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 9 Jan 2023 11:50:30 +0100 Subject: [PATCH 238/989] chore: add `format` task and Markdown formatting --- package-lock.json | 19498 ++++++++++++++++++++++++++++++-------------- package.json | 13 + 2 files changed, 13212 insertions(+), 6299 deletions(-) diff --git a/package-lock.json b/package-lock.json index 81421bdbc8..2e2930361c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,6 +56,8 @@ "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", "puppeteer": "^19.4.1", + "remark-cli": "^11.0.0", + "remark-preset-bpmn-io": "^0.2.1", "rollup": "^2.79.1", "rollup-plugin-license": "^2.9.1", "sinon": "^15.0.0", @@ -157,18 +159,6 @@ } } }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@babel/core/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -778,6 +768,103 @@ "node": ">= 8" } }, + "node_modules/@npmcli/config": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-6.1.0.tgz", + "integrity": "sha512-fPVlvy6MmSN0zgJU1TOD0fimnKVmcFpK3WuPyIQfNtCE+HMkFDN1mIKBKhUNow5QYHmCzMvGbu7pAgwdlSoaQA==", + "dev": true, + "dependencies": { + "@npmcli/map-workspaces": "^3.0.0", + "ini": "^3.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "read-package-json-fast": "^3.0.0", + "semver": "^7.3.5", + "walk-up-path": "^1.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/config/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/map-workspaces": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.1.tgz", + "integrity": "sha512-QXwE2p5zRTP6X8Irgf/swYwwdQEalSA1GBm0IGE/86R5EJbUGgKMOP0kOjaJWJxaWPkSqyhM8N50SPxFHTfkNg==", + "dev": true, + "dependencies": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^8.0.1", + "minimatch": "^5.0.1", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/map-workspaces/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@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, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@rollup/plugin-commonjs": { "version": "23.0.2", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.2.tgz", @@ -1045,6 +1132,15 @@ "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", "dev": true }, + "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", @@ -1057,6 +1153,15 @@ "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, + "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, + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/eslint": { "version": "8.4.6", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", @@ -1083,6 +1188,42 @@ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true }, + "node_modules/@types/estree-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.0.tgz", + "integrity": "sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz", + "integrity": "sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw==", + "dev": true + }, + "node_modules/@types/github-slugger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/github-slugger/-/github-slugger-1.3.0.tgz", + "integrity": "sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g==", + "dev": true + }, + "node_modules/@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, + "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 + }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -1095,10 +1236,40 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, + "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 + }, + "node_modules/@types/nlcst": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-1.0.0.tgz", + "integrity": "sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "dev": true + }, + "node_modules/@types/pluralize": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.29.tgz", + "integrity": "sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA==", "dev": true }, "node_modules/@types/resolve": { @@ -1107,6 +1278,24 @@ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", "dev": true }, + "node_modules/@types/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==", + "dev": true + }, + "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 + }, + "node_modules/@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", + "dev": true + }, "node_modules/@types/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", @@ -1275,6 +1464,15 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, + "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, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -1640,6 +1838,16 @@ "node": ">= 0.4" } }, + "node_modules/array-iterate": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.4.tgz", + "integrity": "sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -1996,6 +2204,16 @@ "regenerator-runtime": "^0.11.0" } }, + "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" + } + }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -2415,6 +2633,16 @@ } ] }, + "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, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chai": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", @@ -2452,6 +2680,16 @@ "node": ">=4" } }, + "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, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -2623,6 +2861,35 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "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, + "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", @@ -2892,6 +3159,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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, + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -3076,6 +3356,15 @@ "node": ">= 0.8" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -3189,6 +3478,12 @@ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, + "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 + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -3201,6 +3496,12 @@ "integrity": "sha512-dOujC5Yzj0nOVE23iD5HKqrRSDj2SD7RazpZS/b/WX85MtO6/LzKDF4TlYZTBteB+7fvSg5JpWh0sN7fImNF8w==", "dev": true }, + "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 + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -4583,6 +4884,19 @@ "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, + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -4832,6 +5146,15 @@ "node": ">=0.10.0" } }, + "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/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -5802,6 +6125,12 @@ "node": ">=0.10.0" } }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "dev": true + }, "node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -6224,6 +6553,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.1.tgz", + "integrity": "sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6269,6 +6608,15 @@ "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.1.0.tgz", "integrity": "sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw==" }, + "node_modules/ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", @@ -6448,6 +6796,12 @@ "node": ">=0.10.0" } }, + "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-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", @@ -6924,6 +7278,18 @@ "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/jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -7329,6 +7695,24 @@ "node": ">=0.10.0" } }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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, + "bin": { + "levenshtein-edit-distance": "cli.js" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -7348,6 +7732,20 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/load-plugin": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-5.1.0.tgz", + "integrity": "sha512-Lg1CZa1CFj2CbNaxijTL6PCbzd4qGTlZov+iH2p5Xwy/ApcZJh+i6jMN2cYePouTfjJfrNu3nXFdEw8LvbjPFQ==", + "dev": true, + "dependencies": { + "@npmcli/config": "^6.0.0", + "import-meta-resolve": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -7518,10 +7916,20 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "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==", + "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" @@ -7530,6 +7938,18 @@ "loose-envify": "cli.js" } }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/magic-string": { "version": "0.26.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", @@ -7587,6 +8007,26 @@ "node": ">=0.10.0" } }, + "node_modules/markdown-table": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "dev": true, + "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, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/matches-selector": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-1.2.0.tgz", @@ -7599,1370 +8039,1950 @@ "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", "dev": true }, - "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==", + "node_modules/mdast-comment-marker": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.1.0.tgz", + "integrity": "sha512-/+Cfm8A83PjkqjQDB9iYqHESGuXlriCWAwRGPJjkYmxXrF4r6saxeUlOKNrf+SogTwg9E8uyHRCFHLG6/BAAdA==", "dev": true, - "engines": { - "node": ">= 0.6" + "dependencies": { + "mdast-util-mdx-expression": "^1.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "node_modules/mdast-util-find-and-replace": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz", + "integrity": "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==", "dev": true, - "engines": { - "node": ">= 0.10.0" + "dependencies": { + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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 - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/mdast-util-find-and-replace/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, "engines": { - "node": ">= 8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "node_modules/mdast-util-from-markdown": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", + "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz", + "integrity": "sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==", "dev": true, "dependencies": { - "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" + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz", + "integrity": "sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==", "dev": true, - "bin": { - "mime": "cli.js" + "dependencies": { + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" }, - "engines": { - "node": ">=4.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/mdast-util-gfm-footnote": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz", + "integrity": "sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==", "dev": true, - "engines": { - "node": ">= 0.6" + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/mdast-util-gfm-strikethrough": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.2.tgz", + "integrity": "sha512-T/4DVHXcujH6jx1yqpcAYYwd+z5lAYMw4Ls6yhTfbMMtCt0PHY4gEfhW9+lKsLBtyhUGKRIzcUA2FATVqnvPDA==", "dev": true, "dependencies": { - "mime-db": "1.52.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/mdast-util-gfm-table": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.6.tgz", + "integrity": "sha512-uHR+fqFq3IvB3Rd4+kzXW8dmpxUhvgCQZep6KdjsLK4O6meK5dYZEayLtIxNus1XO3gfjfcIFe8a7L0HZRGgag==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "@types/mdast": "^3.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/min-dash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-4.0.0.tgz", - "integrity": "sha512-piIvVJ/nxuA4+LpnYIzF6oCtRvdtDvQJteSC+H768H2UvPKFKIt5oiJnUVtr0ZdchneXTcvUZ91vIrvWVIN0AA==" - }, - "node_modules/min-dom": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.0.3.tgz", - "integrity": "sha512-5zQyCMe8rtGiDIRjfGeqnF2YPJ7OAPFdJQeC7MakHais3dh4VG4PV2a0FacziKTzJjYK5qnPKm2sq1wSXB1wTQ==", + "node_modules/mdast-util-gfm-task-list-item": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz", + "integrity": "sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==", + "dev": true, "dependencies": { - "component-event": "^0.1.4", - "domify": "^1.4.1", - "min-dash": "^4.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/mdast-util-heading-style": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.0.tgz", + "integrity": "sha512-q9+WW2hJduW51LgV2r/fcU5wIt2GLFf0yYHxyi0f2aaxnC63ErBSOAJlhP6nbQ6yeG5rTCozbwOi4QNDPKV0zw==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@types/mdast": "^3.0.0" }, - "engines": { - "node": "*" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "node_modules/mdast-util-mdx-expression": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.1.tgz", + "integrity": "sha512-TTb6cKyTA1RD+1su1iStZ5PAv3rFfOUKcoU5EstUpv/IZo63uDX03R8+jXjMEhcobXnNOiG6/ccekvVl4eV1zQ==", "dev": true, + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "node_modules/mdast-util-phrasing": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.0.tgz", + "integrity": "sha512-S+QYsDRLkGi8U7o5JF1agKa/sdP+CNGXXLqC17pdTVL8FHHgQEiwFGa9yE5aYtUxNiFGYoaDy9V1kC85Sz86Gg==", "dev": true, "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "@types/mdast": "^3.0.0", + "unist-util-is": "^5.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "node_modules/mdast-util-to-markdown": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.4" + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mkdirp": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz", - "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==", + "node_modules/mdast-util-to-nlcst": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-5.2.1.tgz", + "integrity": "sha512-Xznpj85MsJnLQjBboajOovT2fAAvbbbmYutpFgzLi9pjZEOkgGzjq+t6fHcge8uzZ5uEkj5pigzw2QrnIVq/kw==", "dev": true, - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/nlcst": "^1.0.0", + "@types/unist": "^2.0.0", + "nlcst-to-string": "^3.0.0", + "unist-util-position": "^4.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true + "node_modules/mdast-util-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", - "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", + "node_modules/mdast-util-toc": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-6.1.0.tgz", + "integrity": "sha512-0PuqZELXZl4ms1sF7Lqigrqik4Ll3UhbI+jdTrfw7pZ9QPawgl7LD4GQ8MkU7bT/EwiVqChNTbifa2jLLKo76A==", "dev": true, "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" + "@types/extend": "^3.0.0", + "@types/github-slugger": "^1.0.0", + "@types/mdast": "^3.0.0", + "extend": "^3.0.0", + "github-slugger": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^3.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mochajs" + "url": "https://opencollective.com/unified" } }, - "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/mdast-util-toc/node_modules/unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/mocha/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/mdast-util-toc/node_modules/unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, - "engines": { - "node": ">= 8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mocha/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==", + "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": ">=8" + "node": ">= 0.6" } }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "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, - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": ">= 0.10.0" } }, - "node_modules/mocha/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "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 + }, + "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, - "dependencies": { - "fill-range": "^7.0.1" - }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "node_modules/micromark": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", + "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", "dev": true, "funding": [ { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], "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" + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", + "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", + "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", + "dev": true, + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", "dev": true, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mocha/node_modules/debug/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/micromark-extension-gfm-footnote": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz", + "integrity": "sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==", + "dev": true, + "dependencies": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "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==", + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", + "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mocha/node_modules/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==", + "node_modules/micromark-extension-gfm-table": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", + "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mocha/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", + "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "dependencies": { + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mocha/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==", + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", + "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" }, - "engines": { - "node": ">= 6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mocha/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==", + "node_modules/micromark-factory-destination": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", + "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", "dev": true, - "engines": { - "node": ">=8" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/mocha/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==", + "node_modules/micromark-factory-label": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", + "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, - "node_modules/mocha/node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/micromark-factory-space": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", + "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", "dev": true, - "engines": { - "node": ">=0.10.0" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/mocha/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==", + "node_modules/micromark-factory-title": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", + "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, - "node_modules/mocha/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==", + "node_modules/micromark-factory-whitespace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", + "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", "dev": true, - "engines": { - "node": ">=0.12.0" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "node_modules/micromark-util-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", + "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "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/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/micromark-util-chunked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", + "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", "dev": true, - "engines": { - "node": ">=0.10.0" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/mocha/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/micromark-util-classify-character": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", + "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/mocha/node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "node_modules/micromark-util-combine-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", + "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "randombytes": "^2.1.0" + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/mocha/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==", + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", + "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/mocha/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==", + "node_modules/micromark-util-decode-string": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", + "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "node_modules/micromark-util-encode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", + "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", "dev": true, - "engines": { - "node": ">=10" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", + "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", + "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/moddle": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/moddle/-/moddle-6.0.0.tgz", - "integrity": "sha512-dHYSJpGV0R0X8cJeWWUnE0VqCA0SFP0jZYQtO23EdsBk+MpAgSpdhXadYR6WbHElKroB6XTbifpsWro26UlP6Q==", + "node_modules/micromark-util-resolve-all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", + "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "min-dash": "^4.0.0" + "micromark-util-types": "^1.0.0" } }, - "node_modules/moddle-xml": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-10.0.0.tgz", - "integrity": "sha512-e5qG0uC9ebHXInLEKW9pZNqcAK7ALCOKmcLw8jmepBPY9BiUZFi+8Th/Cydog3S1rrUXyyo0pqaHaCvc1zt6VA==", + "node_modules/micromark-util-sanitize-uri": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", + "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "min-dash": "^4.0.0", - "moddle": "^6.0.0", - "saxen": "^8.1.2" + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "node_modules/micromark-util-subtokenize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", + "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", "dev": true, - "engines": { - "node": "*" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, - "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/micromark-util-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", + "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] }, - "node_modules/nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", + "node_modules/micromark-util-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", + "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", "dev": true, - "optional": true + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "node_modules/micromark/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, - "bin": { - "nanoid": "bin/nanoid.cjs" + "dependencies": { + "ms": "2.1.2" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "node_modules/micromark/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/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", "dev": true, "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/nanomatch/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "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": ">=0.10.0" + "node": ">=4.0.0" } }, - "node_modules/nanomatch/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "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.10.0" + "node": ">= 0.6" } }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "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.10.0" + "node": ">= 0.6" } }, - "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==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=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/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "node_modules/min-dash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-4.0.0.tgz", + "integrity": "sha512-piIvVJ/nxuA4+LpnYIzF6oCtRvdtDvQJteSC+H768H2UvPKFKIt5oiJnUVtr0ZdchneXTcvUZ91vIrvWVIN0AA==" }, - "node_modules/nise": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.2.tgz", - "integrity": "sha512-+gQjFi8v+tkfCuSCxfURHLhRhniE/+IaYbIphxAN2JRR9SHKhY8hgXpaXiYfHdw+gcGe4buxgbprBQFab9FkhA==", - "dev": true, + "node_modules/min-dom": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.0.3.tgz", + "integrity": "sha512-5zQyCMe8rtGiDIRjfGeqnF2YPJ7OAPFdJQeC7MakHais3dh4VG4PV2a0FacziKTzJjYK5qnPKm2sq1wSXB1wTQ==", "dependencies": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "^7.0.4", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" + "component-event": "^0.1.4", + "domify": "^1.4.1", + "min-dash": "^4.0.0" } }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": "*" } }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node_modules/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==", + "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, - "dependencies": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "dependencies": { - "remove-trailing-separator": "^1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/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==", + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "dependencies": { - "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" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">= 4" + "node": ">=0.10.0" } }, - "node_modules/npm-run-all/node_modules/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=", + "node_modules/mkdirp": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz", + "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "bin": { + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm-run-all/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/mocha": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", + "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", "dev": true, "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" }, "engines": { - "node": ">=4" + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" } }, - "node_modules/npm-run-all/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "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/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "dependencies": { - "pify": "^3.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/npm-run-all/node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "node_modules/mocha/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, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/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==", + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" + "balanced-match": "^1.0.0" } }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/mocha/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, "engines": { "node": ">=8" } }, - "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=", + "node_modules/mocha/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": ">=0.10.0" + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "node_modules/mocha/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": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "ms": "2.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/mocha/node_modules/debug/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/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/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, "dependencies": { - "is-descriptor": "^0.1.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "node_modules/mocha/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, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "node_modules/mocha/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": ">= 0.4" + "node": ">= 6" } }, - "node_modules/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==" + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "node_modules/mocha/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": { - "isobject": "^3.0.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/object-visit/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "node_modules/mocha/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/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "node_modules/mocha/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": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/object.assign/node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/mocha/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/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/object.assign/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==", + "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/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.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/object.assign/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==", + "node_modules/mocha/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": ">= 0.4" + "node": ">=8.10.0" } }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "node_modules/mocha/node_modules/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, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "randombytes": "^2.1.0" + } + }, + "node_modules/mocha/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, + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/object.entries/node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "node_modules/mocha/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": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "is-number": "^7.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8.0" } }, - "node_modules/object.entries/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==", + "node_modules/mocha/node_modules/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, - "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": ">=10" } }, - "node_modules/object.entries/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/moddle": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/moddle/-/moddle-6.0.0.tgz", + "integrity": "sha512-dHYSJpGV0R0X8cJeWWUnE0VqCA0SFP0jZYQtO23EdsBk+MpAgSpdhXadYR6WbHElKroB6XTbifpsWro26UlP6Q==", + "dependencies": { + "min-dash": "^4.0.0" } }, - "node_modules/object.entries/node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/moddle-xml": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-10.0.0.tgz", + "integrity": "sha512-e5qG0uC9ebHXInLEKW9pZNqcAK7ALCOKmcLw8jmepBPY9BiUZFi+8Th/Cydog3S1rrUXyyo0pqaHaCvc1zt6VA==", + "dependencies": { + "min-dash": "^4.0.0", + "moddle": "^6.0.0", + "saxen": "^8.1.2" } }, - "node_modules/object.entries/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==", + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "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": "*" } }, - "node_modules/object.entries/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==", + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=4" } }, - "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "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/nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "optional": true }, - "node_modules/object.fromentries/node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/object.fromentries/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==", + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/object.fromentries/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==", + "node_modules/nanomatch/node_modules/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, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/object.fromentries/node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "node_modules/nanomatch/node_modules/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, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/object.fromentries/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==", + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "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": ">=0.10.0" } }, - "node_modules/object.fromentries/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==", + "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.4" + "node": ">= 0.6" } }, - "node_modules/object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "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/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/nise": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.2.tgz", + "integrity": "sha512-+gQjFi8v+tkfCuSCxfURHLhRhniE/+IaYbIphxAN2JRR9SHKhY8hgXpaXiYfHdw+gcGe4buxgbprBQFab9FkhA==", "dev": true, "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" } }, - "node_modules/object.hasown/node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/nlcst-is-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nlcst-is-literal/-/nlcst-is-literal-2.1.0.tgz", + "integrity": "sha512-jaEIXvIreWx4lfkRa+B3toTTxQgDxnECncbEQVSUVfRWxamQFbRHgxyfrt0aMnuoq5AMd3CQHl5SHGGruOUOdQ==", "dev": true, "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" + "@types/nlcst": "^1.0.0", + "@types/unist": "^2.0.0", + "nlcst-to-string": "^3.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/object.hasown/node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "node_modules/nlcst-normalize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nlcst-normalize/-/nlcst-normalize-3.1.0.tgz", + "integrity": "sha512-kRWfUwtffmU26wPAJ25St5rec29PhV8F6dKaa7PxGhH3uytsGakfLyOEEm1mULzWOdfyDb03aE+OKp7h0OJuhA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "@types/nlcst": "^1.0.0", + "nlcst-to-string": "^3.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/object.hasown/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==", + "node_modules/nlcst-search": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nlcst-search/-/nlcst-search-3.1.0.tgz", + "integrity": "sha512-d+0fXxF0d5oFAeeyuoGbIYcbiixE9Xt/lsmt491jjPyabXRoIRBE0++U+G8kbDyJFRk1bMQnGFpMCzeoMlDYfQ==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "@types/nlcst": "^1.0.0", + "@types/unist": "^2.0.0", + "nlcst-is-literal": "^2.0.0", + "nlcst-normalize": "^3.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/object.hasown/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==", + "node_modules/nlcst-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-3.1.0.tgz", + "integrity": "sha512-Y8HQWKw/zrHTCnu2zcFBN1dV6vN0NUG7s5fkEj380G8tF3R+vA2KG+tDl2QoHVQCTHGHVXwoni2RQkDSFQb1PA==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/nlcst": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/object.hasown/node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { - "node": ">= 0.4" + "node": "4.x || >=6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/object.hasown/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==", + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.0.0.tgz", + "integrity": "sha512-e6Qw1rcrGoSxEH0hQ4GBSdUjkMOtXGhGFXdNT/3ZR0S37eR9DMj5za3dEDWE6o1T3/DP8ZOsPP4MIiky0c3QeA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "abbrev": "^2.0.0" }, - "engines": { - "node": ">= 0.4" + "bin": { + "nopt": "bin/nopt.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/object.hasown/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==", + "node_modules/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==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "node_modules/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, "dependencies": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "remove-trailing-separator": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "node_modules/npm-normalize-package-bin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", + "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/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==", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "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" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" }, "engines": { - "node": ">=0.10.0" + "node": ">= 4" } }, - "node_modules/object.pick/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "node_modules/npm-run-all/node_modules/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, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "node_modules/npm-run-all/node_modules/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, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/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, + "dependencies": { + "pify": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/object.values/node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "node_modules/npm-run-all/node_modules/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, "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/number-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 + }, + "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-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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==" + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.assign/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.assign/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/object.assign/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.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.entries/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", @@ -8986,7 +10006,7 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.values/node_modules/es-to-primitive": { + "node_modules/object.entries/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==", @@ -9003,7 +10023,7 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.values/node_modules/has-symbols": { + "node_modules/object.entries/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==", @@ -9015,7 +10035,7 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.values/node_modules/is-callable": { + "node_modules/object.entries/node_modules/is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", @@ -9027,7 +10047,7 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.values/node_modules/is-regex": { + "node_modules/object.entries/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==", @@ -9043,7 +10063,7 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.values/node_modules/object-keys": { + "node_modules/object.entries/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==", @@ -9052,1314 +10072,1251 @@ "node": ">= 0.4" } }, - "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/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" }, "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "node_modules/object.fromentries/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "node_modules/object.fromentries/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": { - "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" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/object.fromentries/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, - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/object.fromentries/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/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==", + "node_modules/object.fromentries/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": { - "aggregate-error": "^3.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/object.fromentries/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": ">=6" + "node": ">= 0.4" } }, - "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==", + "node_modules/object.hasown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { - "url": "https://github.com/sponsors/dword-design" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/object.hasown/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "dependencies": { - "callsites": "^3.0.0" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", + "node_modules/object.hasown/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "dependencies": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/object.hasown/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": { - "@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" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/object.hasown/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.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "node_modules/object.hasown/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/object.hasown/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": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/path-intersection": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-intersection/-/path-intersection-2.2.1.tgz", - "integrity": "sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA==" - }, - "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=", + "node_modules/object.hasown/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.10.0" + "node": ">= 0.4" } }, - "node_modules/path-key": { + "node_modules/object.omit": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, + "dependencies": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "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-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "dependencies": { - "isarray": "0.0.1" + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/path-to-regexp/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/object.pick/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/object.values/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, "engines": { - "node": ">=8.6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pidtree": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", - "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", + "node_modules/object.values/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, - "bin": { - "pidtree": "bin/pidtree.js" + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "node_modules/object.values/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": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/object.values/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/object.values/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": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "node_modules/object.values/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.10.0" - } - }, - "node_modules/preact": { - "version": "10.11.3", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz", - "integrity": "sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" + "node": ">= 0.4" } }, - "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==", + "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.0" + "node": ">= 0.8" } }, - "node_modules/preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "wrappy": "1" } }, - "node_modules/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 - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/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 - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "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/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, + "dependencies": { + "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" + }, "engines": { - "node": ">=6" + "node": ">= 0.8.0" } }, - "node_modules/puppeteer": { - "version": "19.4.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.4.1.tgz", - "integrity": "sha512-PCnrR13B8A+VSEDXRmrNXRZbrkF1tfsI1hKSC7vs13eNS6CUD3Y4FA8SF8/VZy+Pm1kg5AggJT2Nu3HLAtGkFg==", + "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, - "hasInstallScript": true, "dependencies": { - "cosmiconfig": "8.0.0", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "puppeteer-core": "19.4.1" + "p-try": "^2.0.0" }, "engines": { - "node": ">=14.1.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/puppeteer-core": { - "version": "19.4.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.4.1.tgz", - "integrity": "sha512-JHIuqtqrUAx4jGOTxXu4ilapV2jabxtVMA/e4wwFUMvtSsqK4nVBSI+Z1SKDoz7gRy/JUIc8WzmfocCa6SIZ1w==", + "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": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.1068969", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.11.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=14.1.0" + "node": ">=8" } }, - "node_modules/puppeteer-core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/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==", "dev": true, "dependencies": { - "ms": "2.1.2" + "aggregate-error": "^3.0.0" }, "engines": { - "node": ">=6.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/puppeteer-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/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==", + "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": ">=0.9" + "node": ">=6" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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, - "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/rambda": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.2.1.tgz", - "integrity": "sha512-Wswj8ZvzdI3VhaGPkZAxaCTwuMmGtgWt7Zxsgyo4P+iTmVnkojvyWaOep5q3ZjMIecW0wtQa66GWxaKkZ24RAA==", - "dev": true + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/dword-design" + } }, - "node_modules/randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "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": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "callsites": "^3.0.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">=6" } }, - "node_modules/randomatic/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "node_modules/parse-english": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-english/-/parse-english-5.0.0.tgz", + "integrity": "sha512-sMe/JmsY6g21aJCAm8KgCH90a9zCZ7aGSriSJ5B0CcGEsDN7YmiCk3+1iKPE1heDG6zYY4Xf++V8llWtCvNBSQ==", + "dev": true, + "dependencies": { + "nlcst-to-string": "^2.0.0", + "parse-latin": "^5.0.0", + "unist-util-modify-children": "^2.0.0", + "unist-util-visit-children": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-english/node_modules/nlcst-to-string": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz", + "integrity": "sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", "dev": true, + "dependencies": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/randomatic/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "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": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/parse-latin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-5.0.1.tgz", + "integrity": "sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==", "dev": true, "dependencies": { - "safe-buffer": "^5.1.0" + "nlcst-to-string": "^3.0.0", + "unist-util-modify-children": "^3.0.0", + "unist-util-visit-children": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "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==", + "node_modules/parse-latin/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, - "engines": { - "node": ">= 0.6" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "node_modules/parse-latin/node_modules/unist-util-modify-children": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-3.1.0.tgz", + "integrity": "sha512-L0UizdncPZ1NIwpmkwFdLo2NaK2Eb5LU/vaQ7lZGkAaOBZfsHp+8T/gVWPVmmMO1hj6gc+XeMoytut8jr7fdyA==", "dev": true, "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "@types/unist": "^2.0.0", + "array-iterate": "^2.0.0" }, - "engines": { - "node": ">= 0.8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/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==", + "node_modules/parse-latin/node_modules/unist-util-visit-children": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-2.0.1.tgz", + "integrity": "sha512-2cEU3dhV1hMfO9ajwb8rJsDedMfsahsm6fCfR8LxDR/w7KcB5lzHQ9dBTQIXsWGNWBFH5MPmaFP3Xh0dWLqClQ==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "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, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, "engines": { - "node": ">=0.10" + "node": ">= 0.8" } }, - "node_modules/readdirp/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/readdirp/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "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": ">=0.10.0" + "node": ">=8" } }, - "node_modules/readdirp/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "node_modules/path-intersection": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-intersection/-/path-intersection-2.2.1.tgz", + "integrity": "sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA==" + }, + "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, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": { + "node_modules/path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/readdirp/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "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-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "isarray": "0.0.1" } }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/path-to-regexp/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/pidtree": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", + "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" + "bin": { + "pidtree": "bin/pidtree.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "find-up": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/readdirp/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/readdirp/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/readdirp/node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "node_modules/preact": { + "version": "10.11.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz", + "integrity": "sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "node_modules/readdirp/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/readdirp/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/readdirp/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/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 }, - "node_modules/readdirp/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "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, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/readdirp/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "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": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "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, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "levenshtein-edit-distance": "^1.0.0" } }, - "node_modules/readdirp/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/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 }, - "node_modules/readdirp/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node_modules/readdirp/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/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, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "node_modules/regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "node_modules/puppeteer": { + "version": "19.4.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.4.1.tgz", + "integrity": "sha512-PCnrR13B8A+VSEDXRmrNXRZbrkF1tfsI1hKSC7vs13eNS6CUD3Y4FA8SF8/VZy+Pm1kg5AggJT2Nu3HLAtGkFg==", "dev": true, + "hasInstallScript": true, "dependencies": { - "is-equal-shallow": "^0.1.3" + "cosmiconfig": "8.0.0", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "puppeteer-core": "19.4.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=14.1.0" } }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "node_modules/puppeteer-core": { + "version": "19.4.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.4.1.tgz", + "integrity": "sha512-JHIuqtqrUAx4jGOTxXu4ilapV2jabxtVMA/e4wwFUMvtSsqK4nVBSI+Z1SKDoz7gRy/JUIc8WzmfocCa6SIZ1w==", "dev": true, "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1068969", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.11.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=14.1.0" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "node_modules/puppeteer-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, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" + "ms": "2.1.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, "engines": { - "node": ">=8" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "node_modules/puppeteer-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/repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "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.10.0" + "node": ">=0.9" } }, - "node_modules/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, - "engines": { - "node": ">=0.10" - } - }, - "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=", + "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, - "engines": { - "node": ">=0.10.0" - } + "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/require-from-string": { + "node_modules/quotation": { "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==", + "resolved": "https://registry.npmjs.org/quotation/-/quotation-2.0.2.tgz", + "integrity": "sha512-FeUlLe40ROXHVWLZkzmeR2PNYWdkvTXEXhW6FX8axRv1ODt8Gxed3APrE1Qb5i1n70ZzZGRmvs0jY3v/BRcJQQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "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==", + "node_modules/rambda": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.2.1.tgz", + "integrity": "sha512-Wswj8ZvzdI3VhaGPkZAxaCTwuMmGtgWt7Zxsgyo4P+iTmVnkojvyWaOep5q3ZjMIecW0wtQa66GWxaKkZ24RAA==", "dev": true }, - "node_modules/resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "node_modules/randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "dependencies": { - "path-parse": "^1.0.5" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "engines": { + "node": ">= 0.10.0" } }, - "node_modules/resolve-from": { + "node_modules/randomatic/node_modules/is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true + "node_modules/randomatic/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "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.12" + "node": ">= 0.6" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "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/rimraf": { + "node_modules/read-package-json-fast": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "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, "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/rollup-plugin-license": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.1.tgz", - "integrity": "sha512-C26f/bFXR52tzpBMllDnf5m2ETqRuyrrj3m8i3YY4imDwbXtunop+Lj1mO9mn/sZF8gKknOycN1Sm+kMGBd6RA==", + "node_modules/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==", "dev": true, "dependencies": { - "commenting": "~1.1.0", - "glob": "~7.2.0", - "lodash": "~4.17.21", - "magic-string": "~0.26.2", - "mkdirp": "~1.0.4", - "moment": "~2.29.3", - "package-name-regex": "~2.0.6", - "spdx-expression-validate": "~2.0.0", - "spdx-satisfies": "~5.0.1" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "rollup": "^1.0.0 || ^2.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/rollup-plugin-license/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "dependencies": { - "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" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10" } }, - "node_modules/rollup-plugin-license/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/readdirp/node_modules/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, - "bin": { - "mkdirp": "bin/cmd.js" - }, "engines": { - "node": ">=10" + "node": ">=0.10.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==", + "node_modules/readdirp/node_modules/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, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=0.10.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==", + "node_modules/readdirp/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "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-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": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "dependencies": { - "ret": "~0.1.10" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/saxen": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/saxen/-/saxen-8.1.2.tgz", - "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" - }, - "node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=0.10.0" } }, - "node_modules/semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "node_modules/readdirp/node_modules/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, - "bin": { - "semver": "bin/semver" + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "node_modules/readdirp/node_modules/expand-brackets/node_modules/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, "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/set-value/node_modules/extend-shallow": { + "node_modules/readdirp/node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", @@ -10371,181 +11328,148 @@ "node": ">=0.10.0" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { - "shebang-regex": "^1.0.0" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { "node": ">=0.10.0" } }, - "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.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "kind-of": "^3.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/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 - }, - "node_modules/sinon": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.0.tgz", - "integrity": "sha512-pV97G1GbslaSJoSdy2F2z8uh5F+uPGp3ddOzA4JsBOUBLEQRz2OAqlKGRFTSh2KiqUCmHkzyAeu7R4x1Hx0wwg==", + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "^9.1.2", - "@sinonjs/samsam": "^7.0.1", - "diff": "^5.0.0", - "nise": "^5.1.2", - "supports-color": "^7.2.0" + "is-buffer": "^1.1.5" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/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, - "peerDependencies": { - "chai": "^4.0.0", - "sinon": ">=4.0.0" - } - }, - "node_modules/sinon/node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/sinon/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/sinon/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/sinon/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==", + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/readdirp/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "node_modules/readdirp/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", "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" + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/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==", + "node_modules/readdirp/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "is-descriptor": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "node_modules/readdirp/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "is-descriptor": "^1.0.0" + "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "node_modules/readdirp/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", @@ -10557,7 +11481,7 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "node_modules/readdirp/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", @@ -10569,7 +11493,7 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { + "node_modules/readdirp/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", @@ -10583,7 +11507,31 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/isobject": { + "node_modules/readdirp/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", @@ -10592,7 +11540,7 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/kind-of": { + "node_modules/readdirp/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", @@ -10601,4527 +11549,7836 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/readdirp/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "dependencies": { - "kind-of": "^3.2.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "node_modules/regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" + "is-equal-shallow": "^0.1.3" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/socket.io": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", - "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.2.0", - "socket.io-adapter": "~2.4.0", - "socket.io-parser": "~4.0.4" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" }, "engines": { - "node": ">=10.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/socket.io-adapter": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", - "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", - "dev": true + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } }, - "node_modules/socket.io-parser": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz", - "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==", + "node_modules/remark": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.2.tgz", + "integrity": "sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==", "dev": true, "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" + "@types/mdast": "^3.0.0", + "remark-parse": "^10.0.0", + "remark-stringify": "^10.0.0", + "unified": "^10.0.0" }, - "engines": { - "node": ">=10.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/socket.io-parser/node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/remark-cli": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-11.0.0.tgz", + "integrity": "sha512-8JEWwArXquRq1/In4Ftz7gSG9Scwb1ijT2/dEuBETW9omqhmMRxcfjZ3iKqrak3BnCJeZSXCdWEmPhFKC8+RUQ==", "dev": true, "dependencies": { - "ms": "2.1.2" + "remark": "^14.0.0", + "unified-args": "^10.0.0" }, - "engines": { - "node": ">=6.0" + "bin": { + "remark": "cli.js" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/socket.io-parser/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/socket.io/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/remark-comment-config": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/remark-comment-config/-/remark-comment-config-7.0.1.tgz", + "integrity": "sha512-/+JynO760CWRiHCIaBrlH3fdHqiJO+JDMS931uZoVcHBxxDnkivME+600NAUrU9cNYkVe1uN6a0KyCfE3q4P+g==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@types/mdast": "^3.0.0", + "mdast-comment-marker": "^2.0.0", + "mdast-util-to-markdown": "^1.0.0", + "unified": "^10.0.0" }, - "engines": { - "node": ">=6.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/socket.io/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/remark-github": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-11.2.4.tgz", + "integrity": "sha512-GJjWFpwqdrHHhPWqMbb8+lqFLiHQ9pCzUmXmRrhMFXGpYov5n2ljsZzuWgXlfzArfQYkiKIZczA2I8IHYMHqCA==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/remark-lint": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.1.tgz", + "integrity": "sha512-zhe6twuqgkx/9KgZyNyaO0cceA4jQuJcyzMOBC+JZiAzMN6mFUmcssWZyY30ko8ut9vQDMX/pyQnolGn+Fg/Tw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@types/mdast": "^3.0.0", + "remark-message-control": "^7.0.0", + "unified": "^10.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/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==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "node_modules/remark-lint-blockquote-indentation": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.1.tgz", + "integrity": "sha512-u9cjedM6zcK8vRicis5n/xeOSDIC3FGBCKc3K9pqw+nNrOjY85FwxDQKZZ/kx7rmkdRZEhgyHak+wzPBllcxBQ==", "dev": true, "dependencies": { - "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" + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/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=", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "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==", + "node_modules/remark-lint-checkbox-character-style": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.1.tgz", + "integrity": "sha512-KPSW3wfHfB8m9hzrtHiBHCTUIsOPX5nZR7VM+2pMjwqnhI6Mp94DKprkNo1ekNZALNeoZIDWZUSYxSiiwFfmVQ==", "dev": true, "dependencies": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "node_modules/remark-lint-checkbox-content-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.1.tgz", + "integrity": "sha512-apkM6sqCwAHwNV0v6KuEbq50fH3mTAV4wKTwI1nWgEj33/nf4+RvLLPgznoc2olZyeAIHR69EKPQiernjCXPOw==", "dev": true, "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/remark-lint-code-block-style": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-3.1.0.tgz", + "integrity": "sha512-Hv4YQ8ueLGpjItla4CkcOkcfGj+nlquqylDgCm1/xKnW+Ke2a4qVTMVJrP9Krp4FWmXgktJLDHjhRH+pzhDXLg==", "dev": true, "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/remark-lint-definition-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-definition-case/-/remark-lint-definition-case-3.1.1.tgz", + "integrity": "sha512-dirX0BSfbm1Ixx4Hv4xRQliEP1rw8dDitw2Om3XcO2QqF8bWrzF06/xeMlDNAaT77Cxqb9S7bODo/q+CYUxyWQ==", "dev": true, "dependencies": { - "spdx-expression-parse": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/remark-lint-definition-spacing": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.1.tgz", + "integrity": "sha512-PR+cYvc0FMtFWjkaXePysW88r7Y7eIwbpUGPFDIWE48fiRiz8U3VIk05P3loQCpCkbmUeInAAYD8tIFPTg4Jlg==", "dev": true, "dependencies": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "node_modules/remark-lint-emphasis-marker": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-3.1.1.tgz", + "integrity": "sha512-VduuT+KAr0vA78xBLJdIcenCQja4mAd81aNACfdz7BUPLphIQa84D5uzl+nZatSaCXLebCNp5jP/bzVUsBmRKw==", "dev": true, "dependencies": { - "extend-shallow": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "node_modules/remark-lint-fenced-code-flag": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.1.tgz", + "integrity": "sha512-FFVZmYsBccKIIEgOtgdZEpQdARtAat1LTLBydnIpyNIvcntzWwtrtlj9mtjL8ZoSRre8HtwmEnBFyOfmM/NWaA==", "dev": true, "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/remark-lint-fenced-code-marker": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.1.tgz", + "integrity": "sha512-x/t8sJWPvE46knKz6zW03j9VX5477srHUmRFbnXhZ3K8e37cYVUIvfbPhcPCAosSsOki9+dvGfZsWQiKuUNNfQ==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/remark-lint-file-extension": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.1.1.tgz", + "integrity": "sha512-r6OMe27YZzr2NFjPMbBxgm8RZxigRwzeFSjapPlqcxk0Q0w/6sosJsceBNlGGlk00pltvv7NPqSexbXUjirrQQ==", "dev": true, - "engines": { - "node": ">= 0.8" + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/streamroller": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.2.tgz", - "integrity": "sha512-wZswqzbgGGsXYIrBYhOE0yP+nQ6XRk7xDcYwuQAGTYXdyAUmvgVFE0YU1g5pvQT0m7GBaQfYcSnlHbapuK0H0A==", + "node_modules/remark-lint-final-definition": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.1.1.tgz", + "integrity": "sha512-94hRV+EBIuLVFooiimsZwh5ZPEcTqjy5wr7LgqxoUUWy+srTanndaLoki7bxQJeIcWUnomZncsJAyL0Lo7toxw==", "dev": true, "dependencies": { - "date-format": "^4.0.13", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">=8.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/remark-lint-final-newline": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.1.1.tgz", + "integrity": "sha512-cgKYaI7ujUse/kV4KajLv2j1kmi1CxpAu+w7wIU0/Faihhb3sZAf4a5ACf2Wu8NoTSIr1Q//3hDysG507PIoDg==", "dev": true, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/streamroller/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==", + "node_modules/remark-lint-first-heading-level": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.1.1.tgz", + "integrity": "sha512-Z2+gn9sLyI/sT2c1JMPf1dj9kQkFCpL1/wT5Skm5nMbjI8/dIiTF2bKr9XKsFZUFP7GTA57tfeZvzD1rjWbMwg==", "dev": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">=6 <7 || >=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/streamroller/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/streamroller/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "node_modules/remark-lint-hard-break-spaces": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.1.tgz", + "integrity": "sha512-UfwFvESpX32qwyHJeluuUuRPWmxJDTkmjnWv2r49G9fC4Jrzm4crdJMs3sWsrGiQ3mSex6bgp/8rqDgtBng2IA==", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/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==", + "node_modules/remark-lint-heading-style": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.1.tgz", + "integrity": "sha512-Qm7ZAF+s46ns0Wo5TlHGIn/PPMMynytn8SSLEdMIo6Uo/+8PAcmQ3zU1pj57KYxfyDoN5iQPgPIwPYMLYQ2TSQ==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "@types/mdast": "^3.0.0", + "mdast-util-heading-style": "^2.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "node_modules/remark-lint-link-title-style": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-link-title-style/-/remark-lint-link-title-style-3.1.1.tgz", + "integrity": "sha512-JWWiuUFy/N2iwQ3eWIxFy6olX8D7xCFw8LoM0vZI2CHTZJrmDMaWwnl8jziP+HHHheFX3wkVqsoaYod536ArRw==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string-width/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 + "node_modules/remark-lint-list-item-bullet-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.1.tgz", + "integrity": "sha512-NFvXVj1Nm12+Ma48NOjZCGb/D0IhmUcxyrTCpPp+UNJhEWrmFxM8nSyIiZgXadgXErnuv+xm2Atw7TAcZ9a1Cg==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/string-width/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==", + "node_modules/remark-lint-list-item-indent": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.1.tgz", + "integrity": "sha512-OSTG64e52v8XBmmeT0lefpiAfCMYHJxMMUrMnhTjLVyWAbEO0vqqR5bLvfLwzK+P4nY2D/8XKku0hw35dM86Rw==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "node_modules/remark-lint-maximum-heading-length": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-3.1.1.tgz", + "integrity": "sha512-hTOvRDnULpu0S+k51lovT28TLBgtw8XR0qq+mECSsoyuT4C38UBjQRic5OPo68AZMH0ad/93uj6yvfFtH0K8Lg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.matchall/node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "node_modules/remark-lint-maximum-line-length": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.2.tgz", + "integrity": "sha512-KwddpVmNifTHNXwTQQgVufuUvv0hhu9kJVvmpNdEvfEc7tc3wBkaavyi3kKsUB8WwMhGtZuXVWy6OdPC1axzhw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.matchall/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==", + "node_modules/remark-lint-no-blockquote-without-marker": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.1.tgz", + "integrity": "sha512-7jL7eKS25kKRhQ7SKKB5eRfNleDMWKWAmZ5Y/votJdDoM+6qsopLLumPWaSzP0onyV3dyHRhPfBtqelt3hvcyA==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.matchall/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==", + "node_modules/remark-lint-no-consecutive-blank-lines": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.2.tgz", + "integrity": "sha512-wRsR3kFgHaZ4mO3KASU43oXGLGezNZ64yNs1ChPUacKh0Bm7cwGnxN9GHGAbOXspwrYrN2eCDxzCbdPEZi2qKw==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.matchall/node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "node_modules/remark-lint-no-duplicate-defined-urls": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-defined-urls/-/remark-lint-no-duplicate-defined-urls-2.1.1.tgz", + "integrity": "sha512-iMiJVabYt22vxfinDkf6xOSCJ9N6kDfnqjM4U8cFOHIui6Oo5rjlfl2qYHl7uRFaIjwKIZBho4NL07vOcxp+KQ==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.matchall/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==", + "node_modules/remark-lint-no-duplicate-definitions": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.1.tgz", + "integrity": "sha512-9p+nBz8VvV+t4g/ALNLVN8naV+ffAzC4ADyg9QivzmKwLjyF93Avt4HYNlb2GZ+aoXRQSVG1wjjWFeDC9c7Tdg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.matchall/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==", + "node_modules/remark-lint-no-duplicate-headings-in-section": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-headings-in-section/-/remark-lint-no-duplicate-headings-in-section-3.1.1.tgz", + "integrity": "sha512-hv8GJXcPmpMdIxyQUuem7OUe9pR475Tmq+7ocyRDGODMpgBfMSO6gvNGJkdZin1zeGba0EF8ku3ksvkyodKX1Q==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/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=", + "node_modules/remark-lint-no-emphasis-as-heading": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-3.1.1.tgz", + "integrity": "sha512-F45yuLsYVP4r6OjVtePKk7Aymnf3rBLHXYjnSJggEaYn0j+72xOBLrqmj6ii5YGfDsBwG2pDNTBx4vm3xM7P0Q==", "dev": true, "dependencies": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "node_modules/remark-lint-no-empty-url": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-empty-url/-/remark-lint-no-empty-url-3.1.1.tgz", + "integrity": "sha512-zxIkDMggf6R/NCDkYAsaVHaFhklkp6WvV/wdeJAzT3BverGFnM8QIHUAv8YIQvCGqYWov275SVN1eu81DoU95g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimend/node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/remark-lint-no-file-name-articles": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.1.tgz", + "integrity": "sha512-7fiHKQUGvP4WOsieZ1dxm8WQWWjXjPj0Uix6pk2dSTJqxvaosjKH1AV0J/eVvliat0BGH8Cz4SUbuz5vG6YbdQ==", "dev": true, "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimend/node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "node_modules/remark-lint-no-file-name-consecutive-dashes": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.1.tgz", + "integrity": "sha512-tM4IpURGuresyeIBsXT5jsY3lZakgO6IO59ixcFt015bFjTOW54MrBvdJxA60QHhf5DAyHzD8wGeULPSs7ZQfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-no-file-name-irregular-characters": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-2.1.1.tgz", + "integrity": "sha512-rVeCv1XRdLtp/rxLaiFKElaIHuIlokypV/c2aCG3VVYcQ4+ZmJxq018kEsolR2+Dv9m3vKp8Fy1482US4g4WKA==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimend/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==", + "node_modules/remark-lint-no-file-name-mixed-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-2.1.1.tgz", + "integrity": "sha512-mJU3hYzyXNo8NkoSafPcsgr+Gema+vDCzNWlLw05UdFXJK/cVy+6DVsbrEFjrz8L+WF7uQmUHBtTvd91SqoItg==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-no-file-name-outer-dashes": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.1.tgz", + "integrity": "sha512-2kRcVNzZb0zS3jE+Iaa6MEpplhqXSdsHBILS+BxJ4cDGAAIdeipY8hKaDLdZi+34wvrfnDxNgvNLcHpgqO+OZA==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimend/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==", + "node_modules/remark-lint-no-heading-content-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.1.tgz", + "integrity": "sha512-W4zF7MA72IDC5JB0qzciwsnioL5XlnoE0r1F7sDS0I5CJfQtHYOLlxb3UAIlgRCkBokPWCp0E4o1fsY/gQUKVg==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-heading-style": "^2.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimend/node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "node_modules/remark-lint-no-heading-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.1.tgz", + "integrity": "sha512-3vIfT7gPdpE9D7muIQ6YzSF1q27H9SbsDD7ClJRkEWxMiAzBg0obOZFOIBYukUkmGWdOR5P1EDn5n9TEzS1Fyg==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimend/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==", + "node_modules/remark-lint-no-heading-like-paragraph": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-like-paragraph/-/remark-lint-no-heading-like-paragraph-3.1.1.tgz", + "integrity": "sha512-eDQkw1ir0j2VVmZd60Hy3CUAj85U7zKf59bGEBdXr2OQYJQhvme7XqKwY8QfMlBqn9lYg1/DxsGWt0+5ESIogw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-no-heading-punctuation": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-3.1.1.tgz", + "integrity": "sha512-ZexHx4rmsjKVF1/Fvdig0yOgpWl0wFa43+sqg880HT3PW9KmEczjSRkwlMaTlVgDzC0paNn2FXfQMuEQW4YDLg==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimend/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==", + "node_modules/remark-lint-no-html": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-html/-/remark-lint-no-html-3.1.1.tgz", + "integrity": "sha512-hTaw6Ul3iAXvesWzvl+ev1tVf1SNm7hG3l7A2pj8r+1MlklKDFeaMWsxKnDh+8Rh6pj+mRnwzsbwtQxKiKs9Cw==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "node_modules/remark-lint-no-inline-padding": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.1.tgz", + "integrity": "sha512-++IMm6ohOPKNOrybqjP9eiclEtVX/Rd2HpF2UD9icrC1X5nvrI6tlfN55tePaFvWAB7pe6MW4LzNEMnWse61Lw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimstart/node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/remark-lint-no-literal-urls": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.1.tgz", + "integrity": "sha512-tZZ4gtZMA//ZAf7GJTE8S9yjzqXUfUTlR/lvU7ffc7NeSurqCBwAtHqeXVCHiD39JnlHVSW2MLYhvHp53lBGvA==", "dev": true, "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-no-missing-blank-lines": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-missing-blank-lines/-/remark-lint-no-missing-blank-lines-3.1.1.tgz", + "integrity": "sha512-QF1gXD/jhC7NsQuRK3Ho8KAxak01s6eJRruYkNjYeqdtAzZrRu2dR1ySKFGGyDKpmfY56kb0fqIKB6V1dSAqNA==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimstart/node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "node_modules/remark-lint-no-multiple-toplevel-headings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.1.tgz", + "integrity": "sha512-bM//SIBvIkoGUpA8hR5QibJ+7C2R50PTIRrc4te93YNRG+ie8bJzjwuO9jIMedoDfJB6/+7EqO9FYBivjBZ3MA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimstart/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==", + "node_modules/remark-lint-no-paragraph-content-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-paragraph-content-indent/-/remark-lint-no-paragraph-content-indent-4.1.1.tgz", + "integrity": "sha512-yIjMGz8YClzois639AJ9PRvA+9thRdwKIaFaMRFAEL7Q6U2IuwOvsBDe6Y/x1gnE8sBTwiwKYDgeF6rnBsUYrQ==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimstart/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==", + "node_modules/remark-lint-no-reference-like-url": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-reference-like-url/-/remark-lint-no-reference-like-url-3.1.1.tgz", + "integrity": "sha512-ELO2uez1NO9wEb2nNRY4uVBfw4TYYUHWOnLajExGY92+i3Ylt3EmMwRONT2maJX5qKj4cu8uPi7HAkMIxq8jFg==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimstart/node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "node_modules/remark-lint-no-shell-dollars": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.1.tgz", + "integrity": "sha512-Q3Ad1TaOPxbYog5+Of/quPG3Fy+dMKiHjT8KsU7NDiHG6YJOnAJ3f3w+y13CIlNIaKc/MrisgcthhrZ7NsgXfA==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimstart/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==", + "node_modules/remark-lint-no-shortcut-reference-image": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.1.tgz", + "integrity": "sha512-m8tH+loDagd1JUns/T4eyulVXgVvE+ZSs7owRUOmP+dgsKJuO5sl1AdN9eyKDVMEvxHF3Pm5WqE62QIRNM48mA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/string.prototype.trimstart/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==", + "node_modules/remark-lint-no-shortcut-reference-link": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.1.tgz", + "integrity": "sha512-oDJ92/jXQ842HgrBGgZdP7FA+N2jBMCBU2+jRElkS+OWVut0UaDILtNavNy/e85B3SLPj3RoXKF96M4vfJ7B2A==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/remark-lint-no-table-indentation": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.1.tgz", + "integrity": "sha512-eklvBxUSrkVbJxeokepOvFZ3n2V6zaJERIiOowR+y/Bz4dRHDMij1Ojg55AMO9yUMvxWPV3JPOeThliAcPmrMg==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "node_modules/remark-lint-no-tabs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.1.tgz", + "integrity": "sha512-+MjXoHSSqRFUUz6XHgB1z7F5zIETxhkY+lC5LsOYb1r2ZdujZQWzBzNW5ya4HH5JiDVBPhp8MrqM9cP1v7tB5g==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "vfile-location": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/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==", + "node_modules/remark-lint-no-undefined-references": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.2.0.tgz", + "integrity": "sha512-EDV9B1ZXMLcKVtMQFvfvtbag4AkLcu8aUNGXoez5GJLcCAQ8Q+sG74yOtIW4xNVlVubEjl0vdkFhaKYLxvn2Sw==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "@types/mdast": "^3.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/strip-json-comments": { + "node_modules/remark-lint-no-unneeded-full-reference-image": { "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==", + "resolved": "https://registry.npmjs.org/remark-lint-no-unneeded-full-reference-image/-/remark-lint-no-unneeded-full-reference-image-3.1.1.tgz", + "integrity": "sha512-jXKCNrMVPHG03N87MtgNAd9j4i9LInUXMpfylrXyUw9JT4VSH5OoMzhzp1Ra2442kQRQ6Z/gd3cClPyox01BQg==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@types/mdast": "^3.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "node_modules/remark-lint-no-unneeded-full-reference-link": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-unneeded-full-reference-link/-/remark-lint-no-unneeded-full-reference-link-3.1.1.tgz", + "integrity": "sha512-SWSUdP9dVChVWaIxE5qkm9Uxa82BRaGWlUmGMJfUAS9y9ceOZjVcmgJ3FMW5JZrlrw0jmihR7yLRr0d2uB86sg==", "dev": true, "dependencies": { - "minimist": "^1.1.0" + "@types/mdast": "^3.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/remark-lint-no-unused-definitions": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.1.tgz", + "integrity": "sha512-/GtyBukhAxi5MEX/g/m+FzDEflSbTe2/cpe2H+tJZyDmiLhjGXRdwWnPRDp+mB9g1iIZgVRCk7T4v90RbQX/mw==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">=4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/remark-lint-ordered-list-marker-style": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.1.tgz", + "integrity": "sha512-IWcWaJoaSb4yoSOuvDbj9B2uXp9kSj58DqtrMKo8MoRShmbj1onVfulTxoTLeLtI11NvW+mj3jPSpqjMjls+5Q==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/remark-lint-ordered-list-marker-value": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-3.1.1.tgz", + "integrity": "sha512-+bQZbo+v/A8CuLrO71gobJuKR4/sfnPgWyEggSa+zq+LXPK1HiMDjap0Wr07uYgcUXsXIPh+HD/5J5by6JL+vg==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "node_modules/remark-lint-rule-style": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.1.1.tgz", + "integrity": "sha512-+oZe0ph4DWHGwPkQ/FpqiGp4WULTXB1edftnnNbizYT+Wr+/ux7GNTx78oXH/PHwlnOtVIExMc4W/vDXrUj/DQ==", "dev": true, "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/remark-lint-strong-marker": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.1.tgz", + "integrity": "sha512-tX9Os2C48Hh8P8CouY4dcnAhGnR3trL+NCDqIvJvFDR9Rvm9yfNQaY2N4ZHWVY0iUicq9DpqEiJTgUsT8AGv/w==", "dev": true, "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">=6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tar-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==", + "node_modules/remark-lint-table-cell-padding": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.2.tgz", + "integrity": "sha512-cx5BXjHtpACa7Z51Vuqzy9BI4Z8Hnxz7vklhhrubkoB7mbctP/mR+Nh4B8eE5VtgFYJNHFwIltl96PuoctFCeQ==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">= 6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "node_modules/remark-lint-table-pipe-alignment": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-3.1.1.tgz", + "integrity": "sha512-WOHv2yL4ZwXHM06MIyQNnGFYKz9m2k/GFIA/6hpArF8Ph/3v8CF0J/Hb3Yyfg39e5nODw3D2G3okCO+xgyGQGA==", "dev": true, "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz", - "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==", + "node_modules/remark-lint-table-pipes": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.1.tgz", + "integrity": "sha512-mJnB2FpjJTE4s9kE1JX8gcCjCFvtGPjzXUiQy0sbPHn2YM9EWG7kvFWYoqWK4w569CEQJyxZraEPltmhDjQTjg==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" - }, - "engines": { - "node": ">= 10.13.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.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 - } + "url": "https://opencollective.com/unified" } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/remark-lint-unordered-list-marker-style": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.1.tgz", + "integrity": "sha512-JwH8oIDi9f5Z8cTQLimhJ/fkbPwI3OpNSifjYyObNNuc4PG4/NUoe5ZuD10uPmPYHZW+713RZ8S5ucVCkI8dDA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/remark-message-control": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.1.tgz", + "integrity": "sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==", "dev": true, "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "@types/mdast": "^3.0.0", + "mdast-comment-marker": "^2.0.0", + "unified": "^10.0.0", + "unified-message-control": "^4.0.0", + "vfile": "^5.0.0" }, - "engines": { - "node": ">= 10.13.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "node_modules/remark-parse": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/unified" } }, - "node_modules/terser-webpack-plugin/node_modules/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, - "dependencies": { - "randombytes": "^2.1.0" + "node_modules/remark-preset-bpmn-io": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/remark-preset-bpmn-io/-/remark-preset-bpmn-io-0.2.1.tgz", + "integrity": "sha512-TO2X/TodGrzM63j3mUWH3MoRVmXnkH8ZYDyJcBrw5/myyBZvKrSpWGxj6ArYeej+w07OTjror0EyyGU2ODSuLA==", + "dev": true, + "dependencies": { + "remark-comment-config": "^7.0.0", + "remark-gfm": "^3.0.0", + "remark-github": "^11.0.0", + "remark-lint-blockquote-indentation": "^3.0.0", + "remark-lint-checkbox-character-style": "^4.0.0", + "remark-lint-checkbox-content-indent": "^4.0.0", + "remark-lint-code-block-style": "^3.0.0", + "remark-lint-definition-case": "^3.0.0", + "remark-lint-definition-spacing": "^3.0.0", + "remark-lint-emphasis-marker": "^3.0.0", + "remark-lint-fenced-code-flag": "^3.0.0", + "remark-lint-fenced-code-marker": "^3.0.0", + "remark-lint-file-extension": "^2.0.0", + "remark-lint-final-definition": "^3.0.0", + "remark-lint-first-heading-level": "^3.0.0", + "remark-lint-heading-style": "^3.0.0", + "remark-lint-link-title-style": "^3.0.0", + "remark-lint-maximum-heading-length": "^3.0.0", + "remark-lint-maximum-line-length": "^3.0.0", + "remark-lint-no-consecutive-blank-lines": "^4.0.0", + "remark-lint-no-duplicate-defined-urls": "^2.0.0", + "remark-lint-no-duplicate-definitions": "^3.0.0", + "remark-lint-no-duplicate-headings-in-section": "^3.0.0", + "remark-lint-no-emphasis-as-heading": "^3.0.0", + "remark-lint-no-empty-url": "^3.0.0", + "remark-lint-no-file-name-articles": "^2.0.0", + "remark-lint-no-file-name-consecutive-dashes": "^2.0.0", + "remark-lint-no-file-name-irregular-characters": "^2.0.0", + "remark-lint-no-file-name-mixed-case": "^2.0.0", + "remark-lint-no-file-name-outer-dashes": "^2.0.0", + "remark-lint-no-heading-content-indent": "^4.0.0", + "remark-lint-no-heading-indent": "^4.0.0", + "remark-lint-no-heading-like-paragraph": "^3.0.0", + "remark-lint-no-heading-punctuation": "^3.0.0", + "remark-lint-no-html": "^3.0.0", + "remark-lint-no-missing-blank-lines": "^3.0.0", + "remark-lint-no-multiple-toplevel-headings": "^3.0.0", + "remark-lint-no-paragraph-content-indent": "^4.0.0", + "remark-lint-no-reference-like-url": "^3.0.0", + "remark-lint-no-shell-dollars": "^3.0.0", + "remark-lint-no-table-indentation": "^4.0.0", + "remark-lint-no-tabs": "^3.0.0", + "remark-lint-no-unneeded-full-reference-image": "^3.0.0", + "remark-lint-no-unneeded-full-reference-link": "^3.0.0", + "remark-lint-ordered-list-marker-value": "^3.0.0", + "remark-lint-rule-style": "^3.0.0", + "remark-lint-strong-marker": "^3.0.0", + "remark-lint-table-cell-padding": "^4.0.0", + "remark-lint-table-pipe-alignment": "^3.0.0", + "remark-lint-table-pipes": "^4.0.0", + "remark-lint-unordered-list-marker-style": "^3.0.0", + "remark-preset-lint-recommended": "^6.0.0", + "remark-retext": "^5.0.0", + "remark-toc": "^8.0.0", + "remark-validate-links": "^12.1.0", + "retext-english": "^4.0.0", + "retext-preset-bpmn-io": "^0.0.2", + "unified": "^10.0.0" + } + }, + "node_modules/remark-preset-lint-recommended": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.2.tgz", + "integrity": "sha512-x9kWufNY8PNAhY4fsl+KD3atgQdo4imP3GDAQYbQ6ylWVyX13suPRLkqnupW0ODRynfUg8ZRt8pVX0wMHwgPAg==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "remark-lint": "^9.0.0", + "remark-lint-final-newline": "^2.0.0", + "remark-lint-hard-break-spaces": "^3.0.0", + "remark-lint-list-item-bullet-indent": "^4.0.0", + "remark-lint-list-item-indent": "^3.0.0", + "remark-lint-no-blockquote-without-marker": "^5.0.0", + "remark-lint-no-duplicate-definitions": "^3.0.0", + "remark-lint-no-heading-content-indent": "^4.0.0", + "remark-lint-no-inline-padding": "^4.0.0", + "remark-lint-no-literal-urls": "^3.0.0", + "remark-lint-no-shortcut-reference-image": "^3.0.0", + "remark-lint-no-shortcut-reference-link": "^3.0.0", + "remark-lint-no-undefined-references": "^4.0.0", + "remark-lint-no-unused-definitions": "^3.0.0", + "remark-lint-ordered-list-marker-style": "^3.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/terser-webpack-plugin/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==", + "node_modules/remark-retext": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-5.0.1.tgz", + "integrity": "sha512-h3kOjKNy7oJfohqXlKp+W4YDigHD3rw01x91qvQP/cUkK5nJrDl6yEYwTujQCAXSLZrsBxywlK3ntzIX6c29aA==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-to-nlcst": "^5.0.0", + "unified": "^10.0.0" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/terser/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" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/remark-stringify": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", + "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", "dev": true, "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/remark-toc": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/remark-toc/-/remark-toc-8.0.1.tgz", + "integrity": "sha512-7he2VOm/cy13zilnOTZcyAoyoolV26ULlon6XyCFU+vG54Z/LWJnwphj/xKIDLOt66QmJUgTyUvLVHi2aAElyg==", "dev": true, "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "@types/mdast": "^3.0.0", + "mdast-util-toc": "^6.0.0", + "unified": "^10.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/remark-validate-links": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/remark-validate-links/-/remark-validate-links-12.1.0.tgz", + "integrity": "sha512-+QhcQmu4WhUhxSduRbSInrFAMAFyNVX7QP0OW5AX8C6NzxMweJnwPBsCfWsV77ivIpC5L6sPbZfMLoW85UoMHQ==", "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": "*" + "@types/mdast": "^3.0.0", + "github-slugger": "^1.0.0", + "hosted-git-info": "^5.0.0", + "mdast-util-to-string": "^3.0.0", + "propose": "0.0.5", + "to-vfile": "^7.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "unified-engine": "^10.0.1", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tiny-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.0.0.tgz", - "integrity": "sha512-+u6VomQO7MbI7CQe5q1IwNePpbVKG/HVdUQBmaEpSCdP/QmeyjhrS6WKFsNetXlvf9LWu/f5woRqjMdxBMe/0w==" - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "node_modules/remark-validate-links/node_modules/hosted-git-info": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", + "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", "dev": true, "dependencies": { - "rimraf": "^3.0.0" + "lru-cache": "^7.5.1" }, "engines": { - "node": ">=8.17.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/remark-validate-links/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "node_modules/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, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/to-regex-range": { + "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/to-regex-range/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "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, - "dependencies": { - "kind-of": "^3.0.2" - }, "engines": { "node": ">=0.10.0" } }, - "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==", + "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.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.5" + } + }, + "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": ">=0.6" + "node": ">=4" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "engines": { + "node": ">=0.12" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "node_modules/retext-contractions": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/retext-contractions/-/retext-contractions-5.2.0.tgz", + "integrity": "sha512-G88PLbzHdjTBtgBFlc0Gh2uQPafJ3LpeMaBgKdS+j3hxHEVmlDZeMHRvx/5gRMyxj/QjFH0qifMM94+a/UVy6g==", "dev": true, "dependencies": { - "minimist": "^1.2.0" + "@types/nlcst": "^1.0.0", + "nlcst-is-literal": "^2.0.0", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" }, - "bin": { - "json5": "lib/cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/retext-diacritics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/retext-diacritics/-/retext-diacritics-4.2.0.tgz", + "integrity": "sha512-eag8Z8q2lJkWjOBuI0+5iHE5HZIVMqgPSo+ksV0sE2Z+1FIB3gMB1UNugNERwNL82F9bg6atfgcqyBIDpIutEg==", "dev": true, "dependencies": { - "prelude-ls": "^1.2.1" + "@types/nlcst": "^1.0.0", + "match-casing": "^2.0.0", + "nlcst-search": "^3.0.0", + "nlcst-to-string": "^3.0.0", + "quotation": "^2.0.0", + "unified": "^10.0.0", + "unist-util-position": "^4.0.0" }, - "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, - "engines": { - "node": ">=4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/retext-english": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/retext-english/-/retext-english-4.1.0.tgz", + "integrity": "sha512-Pky2idjvgkzfodO0GH9X4IU8LX/d4ULTnLf7S1WsBRlSCh/JdTFPafXZstJqZehtQWNHrgoCqVOiGugsNFYvIQ==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "@types/nlcst": "^1.0.0", + "parse-english": "^5.0.0", + "unherit": "^3.0.0", + "unified": "^10.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "node_modules/retext-indefinite-article": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/retext-indefinite-article/-/retext-indefinite-article-4.1.0.tgz", + "integrity": "sha512-vu1nJWFUVPU+TrE7eaxS6aJ9kA7+4qcsehgUx42EehcmGlWl+ilmOUKN3vnnG1JKIEmWcumB/Lg3W4whxN0YtQ==", "dev": true, "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "@types/nlcst": "^1.0.0", + "format": "^0.2.0", + "nlcst-to-string": "^3.0.0", + "number-to-words": "^1.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/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==", + "node_modules/retext-preset-bpmn-io": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/retext-preset-bpmn-io/-/retext-preset-bpmn-io-0.0.2.tgz", + "integrity": "sha512-aCKp+M9cCATFDWGoYJPbqJsHeuqx8sDbsYQfqAFDHiOOeqwsLK9bZiIJVJJclqdoYE1xArHx03xJ7nzXoK48Dg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "engines": { - "node": "*" + "dependencies": { + "retext-contractions": "^5.0.0", + "retext-diacritics": "^4.0.0", + "retext-indefinite-article": "^4.0.0", + "retext-quotes": "^5.0.0", + "retext-redundant-acronyms": "^4.0.0", + "retext-repeated-words": "^4.0.0", + "retext-sentence-spacing": "^5.0.0", + "unified": "^10.0.0" } }, - "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==", + "node_modules/retext-quotes": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/retext-quotes/-/retext-quotes-5.2.0.tgz", + "integrity": "sha512-Em2zjsqb6jX0lc8h8GsFZpyO9m1seoA0TzBnq6p9Y6u/hv2fMyhL8+15W7ZXTNbPul6oATnlGj8vGSqWp9+Uzg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "@types/nlcst": "^1.0.0", + "@types/unist": "^2.0.6", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/unbox-primitive/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==", + "node_modules/retext-redundant-acronyms": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/retext-redundant-acronyms/-/retext-redundant-acronyms-4.3.0.tgz", + "integrity": "sha512-KkQcn2zpmYQL0CsZHvPd3yLWb7O0Z6sPzsmQaGzCZalD4qAhqP8TzP+svzhBN9GVgqLyk3s3cH+mrkjsUDM0RQ==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/nlcst": "^1.0.0", + "@types/pluralize": "^0.0.29", + "nlcst-normalize": "^3.0.0", + "nlcst-search": "^3.0.0", + "nlcst-to-string": "^3.0.0", + "pluralize": "^8.0.0", + "quotation": "^2.0.0", + "unified": "^10.0.0", + "unist-util-find-after": "^4.0.0", + "unist-util-position": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "node_modules/retext-repeated-words": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/retext-repeated-words/-/retext-repeated-words-4.2.0.tgz", + "integrity": "sha512-Tle40/5Xy6KxI94s4XRqGXcj6aWUeCoQZUGQto8OjZP98t4tKVDRVG3QGodF633hVOEiN1vYqj0Zegqoe8XOaw==", "dev": true, "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" + "@types/nlcst": "^1.0.0", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "node_modules/retext-sentence-spacing": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/retext-sentence-spacing/-/retext-sentence-spacing-5.2.0.tgz", + "integrity": "sha512-/68k/mp/MY1sfRAr1A6or2rfhR7xFOfydDADAESTAETuES4LIATYEIPqKz0FuSuFZLBS9MB2IpbUPDfUES/OiA==", "dev": true, "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "@types/nlcst": "^1.0.0", + "@types/unist": "^2.0.0", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">=0.10.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==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { - "node": ">= 4.0.0" + "iojs": ">=1.0.0", + "node": ">=0.10.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==", + "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, - "engines": { - "node": ">= 0.8" + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "node_modules/rollup-plugin-license": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.1.tgz", + "integrity": "sha512-C26f/bFXR52tzpBMllDnf5m2ETqRuyrrj3m8i3YY4imDwbXtunop+Lj1mO9mn/sZF8gKknOycN1Sm+kMGBd6RA==", "dev": true, "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "commenting": "~1.1.0", + "glob": "~7.2.0", + "lodash": "~4.17.21", + "magic-string": "~0.26.2", + "mkdirp": "~1.0.4", + "moment": "~2.29.3", + "package-name-regex": "~2.0.6", + "spdx-expression-validate": "~2.0.0", + "spdx-satisfies": "~5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "rollup": "^1.0.0 || ^2.0.0" } }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "node_modules/rollup-plugin-license/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": { - "isarray": "1.0.0" + "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": ">=0.10.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "node_modules/rollup-plugin-license/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/unset-value/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "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": ">=0.10.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "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": "opencollective", - "url": "https://opencollective.com/browserslist" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "queue-microtask": "^1.2.2" } }, - "node_modules/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==", + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, + "mri": "^1.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "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/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==", + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, - "engines": { - "node": ">= 0.4.0" + "dependencies": { + "ret": "~0.1.10" } }, - "node_modules/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==", + "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 }, - "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==", + "node_modules/saxen": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/saxen/-/saxen-8.1.2.tgz", + "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" + }, + "node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "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==", + "node_modules/semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "dev": true, - "engines": { - "node": ">= 0.8" + "bin": { + "semver": "bin/semver" } }, - "node_modules/void-elements": { + "node_modules/set-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "node_modules/webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" + "shebang-regex": "^1.0.0" }, "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": ">=0.10.0" } }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "node_modules/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, "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/webpack/node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "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/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/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, "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" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/webpack/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "node_modules/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 }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "node_modules/sinon": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.0.tgz", + "integrity": "sha512-pV97G1GbslaSJoSdy2F2z8uh5F+uPGp3ddOzA4JsBOUBLEQRz2OAqlKGRFTSh2KiqUCmHkzyAeu7R4x1Hx0wwg==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^9.1.2", + "@sinonjs/samsam": "^7.0.1", + "diff": "^5.0.0", + "nise": "^5.1.2", + "supports-color": "^7.2.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/sinon" } }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "node_modules/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, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "peerDependencies": { + "chai": "^4.0.0", + "sinon": ">=4.0.0" } }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/sinon/node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "@sinonjs/commons": "^1.7.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==", + "node_modules/sinon/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "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" + "type-detect": "4.0.8" } }, - "node_modules/which-boxed-primitive/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==", + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/which-boxed-primitive/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==", + "node_modules/sinon/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-symbols": "^1.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/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==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "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==", + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/wrap-ansi/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==", + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/wrap-ansi/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==", + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "is-descriptor": "^1.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=0.10.0" } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/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.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "dependencies": { + "kind-of": "^6.0.0" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": ">=0.10.0" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { - "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" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "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==", + "node_modules/snapdragon-node/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "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==", + "node_modules/snapdragon-node/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "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==", + "node_modules/snapdragon/node_modules/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, - "engines": { - "node": ">=10" + "dependencies": { + "is-descriptor": "^0.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10.0" } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "node_modules/socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "@babel/compat-data": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", - "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", "dev": true }, - "@babel/core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", - "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "node_modules/socket.io-parser": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz", + "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==", "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.2", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.1", - "@babel/parser": "^7.20.2", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, "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" - } - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "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 - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "@babel/generator": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.3.tgz", - "integrity": "sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - } + "node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true }, - "@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "node_modules/socket.io-parser/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/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" - }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "node_modules/socket.io-parser/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 }, - "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "node_modules/socket.io/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/template": "^7.18.10", - "@babel/types": "^7.19.0" + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } + "node_modules/socket.io/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 }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, - "requires": { - "@babel/types": "^7.18.6" + "engines": { + "node": ">=0.10.0" } }, - "@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "node_modules/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==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" + "dependencies": { + "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" } }, - "@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==", + "node_modules/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=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2" - } + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "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, - "requires": { - "@babel/types": "^7.18.6" + "dependencies": { + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "node_modules/spdx-correct": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "dev": true, + "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 }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "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 }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "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 }, - "@babel/helpers": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", - "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "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, - "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.0" + "dependencies": { + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "@babel/parser": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", - "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "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 }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "node_modules/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": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "@babel/traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", - "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "node_modules/static-extend/node_modules/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": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.1", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.1", - "@babel/types": "^7.20.0", - "debug": "^4.1.0", - "globals": "^11.1.0" + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "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": { - "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 + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "@babel/types": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", - "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "node_modules/streamroller/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, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "@bpmn-io/diagram-js-ui": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.2.tgz", - "integrity": "sha512-IgOIxOwoqsFB2mMPdXtcbPVPjdYkZ3huW7ipowYLhg5jdRGHlBronQ+LER+lfWro6sPtzEsw7qX8D8Yq9M2S5g==", - "requires": { - "htm": "^3.1.1", - "preact": "^10.11.2" + "node_modules/streamroller/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/streamroller/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" } }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "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 }, - "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "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, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, "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.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "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 - } + "safe-buffer": "~5.1.0" } }, - "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, "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 - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, - "@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "node_modules/string-width/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 }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "node_modules/string-width/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" + } }, - "@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==", + "node_modules/string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "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 - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@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.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "node_modules/string.prototype.matchall/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "node_modules/string.prototype.matchall/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, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "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" } }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "node_modules/string.prototype.matchall/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, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@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/string.prototype.matchall/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@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.7", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", - "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "node_modules/string.prototype.matchall/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, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@rollup/plugin-commonjs": { - "version": "23.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.2.tgz", - "integrity": "sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==", + "node_modules/string.prototype.matchall/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, - "requires": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "glob": "^8.0.3", - "is-reference": "1.2.1", - "magic-string": "^0.26.4" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } + "engines": { + "node": ">= 0.4" } }, - "@rollup/plugin-json": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-5.0.1.tgz", - "integrity": "sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw==", + "node_modules/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=", "dev": true, - "requires": { - "@rollup/pluginutils": "^5.0.1" + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "@rollup/plugin-node-resolve": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", - "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, - "requires": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.0", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, "dependencies": { - "builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true - }, - "is-builtin-module": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", - "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", - "dev": true, - "requires": { - "builtin-modules": "^3.3.0" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@rollup/plugin-replace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.1.tgz", - "integrity": "sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==", + "node_modules/string.prototype.trimend/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, - "requires": { - "@rollup/pluginutils": "^5.0.1", - "magic-string": "^0.26.4" + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@rollup/plugin-terser": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.1.0.tgz", - "integrity": "sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==", + "node_modules/string.prototype.trimend/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, - "requires": { - "terser": "^5.15.1" + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "node_modules/string.prototype.trimend/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, - "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "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" } }, - "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "node_modules/string.prototype.trimend/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, - "requires": { - "type-detect": "4.0.8" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "node_modules/string.prototype.trimend/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" + "engines": { + "node": ">= 0.4" }, - "dependencies": { - "@sinonjs/commons": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", - "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@sinonjs/samsam": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", - "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", + "node_modules/string.prototype.trimend/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, - "requires": { - "@sinonjs/commons": "^2.0.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true - }, - "@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 - }, - "@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.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true - }, - "@types/eslint": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", - "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "node_modules/string.prototype.trimend/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, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" + "engines": { + "node": ">= 0.4" } }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "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 - }, - "@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/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "node_modules/string.prototype.trimstart/node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, - "optional": true, - "requires": { - "@types/node": "*" + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "node_modules/string.prototype.trimstart/node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "node_modules/string.prototype.trimstart/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, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" + "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" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "node_modules/string.prototype.trimstart/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, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "node_modules/string.prototype.trimstart/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "node_modules/string.prototype.trimstart/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, - "requires": { - "@xtuc/long": "4.2.2" + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "node_modules/string.prototype.trimstart/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, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "engines": { + "node": ">= 0.4" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "engines": { + "node": ">=4" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "node_modules/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==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "engines": { + "node": ">=6" } }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "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, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@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 - }, - "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/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "dependencies": { + "minimist": "^1.1.0" } }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "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==", + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": {} + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } }, - "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/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, - "requires": { - "debug": "4" + "engines": { + "node": ">= 0.4" }, - "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 - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "engines": { + "node": ">=6" } }, - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "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" - }, "dependencies": { - "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 - } + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" } }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, - "requires": { - "ajv": "^8.0.0" + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, - "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==", + "node_modules/tar-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, - "requires": { - "fast-deep-equal": "^3.1.3" + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "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 - }, - "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 + "node_modules/terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } }, - "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/terser-webpack-plugin": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz", + "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==", "dev": true, - "requires": { - "color-convert": "^1.9.0" + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.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 + } } }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "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" } }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "node_modules/terser-webpack-plugin/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, - "requires": { - "arr-flatten": "^1.0.1" + "engines": { + "node": ">=8" } }, - "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 + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } }, - "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 + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } }, - "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 + "node_modules/terser-webpack-plugin/node_modules/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, + "dependencies": { + "randombytes": "^2.1.0" + } }, - "array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "node_modules/terser-webpack-plugin/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, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/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/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": { - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^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" - } - }, - "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 - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "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" - } - }, - "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 - } + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "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==", + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/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/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 }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "node_modules/tiny-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.0.0.tgz", + "integrity": "sha512-+u6VomQO7MbI7CQe5q1IwNePpbVKG/HVdUQBmaEpSCdP/QmeyjhrS6WKFsNetXlvf9LWu/f5woRqjMdxBMe/0w==" + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" + "dependencies": { + "rimraf": "^3.0.0" }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, "dependencies": { - "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^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" - } - }, - "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 - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "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" - } - }, - "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 - } + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, "dependencies": { - "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^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" - } - }, - "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 - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-vfile": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.3.tgz", + "integrity": "sha512-QO0A9aE6Z/YkmQadJ0syxpmNXtcQiu0qAtCKYKD5cS3EfgfFTAXfgLX6AOaBrSfWSek5nfsMf3gBZ9KGVFcLuw==", + "dev": true, + "dependencies": { + "is-buffer": "^2.0.0", + "vfile": "^5.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/to-vfile/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "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" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "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 + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "engines": { + "node": ">=4" } }, - "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 + "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, + "engines": { + "node": ">=0.6" + } }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "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 + "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" + } }, - "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 + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } }, - "babel-loader": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", - "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", + "node_modules/tsconfig-paths/node_modules/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": { - "find-cache-dir": "^3.3.2", - "schema-utils": "^4.0.0" + "dependencies": { + "minimist": "^1.2.0" }, + "bin": { + "json5": "lib/cli.js" + } + }, + "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": { - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - } + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "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, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" + "engines": { + "node": ">=4" } }, - "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/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, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "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/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 }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "node_modules/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, - "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 + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" }, - "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 + { + "type": "paypal", + "url": "https://paypal.me/faisalman" } + ], + "engines": { + "node": "*" } }, - "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 - }, - "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/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": { - "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" - } - } + "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" } }, - "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "node_modules/unbox-primitive/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, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "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.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, "dependencies": { - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - } + "buffer": "^5.2.1", + "through": "^2.3.8" } }, - "bpmn-font": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.12.0.tgz", - "integrity": "sha512-JQBXri5Dp5q+YgvpeTKkETnwr2eCLlUjIjIBPDmAVP1hZD0dS2Om59IjX/FCTf+/Ja1+AJw6ClEGW6DFIaVLhQ==", - "dev": true + "node_modules/unherit": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-3.0.1.tgz", + "integrity": "sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "bpmn-moddle": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-8.0.0.tgz", - "integrity": "sha512-mHmtIVzUyZcPMKKl/REq151gYxEtZxvivKnIEp/RtuRm8SOgxAK58uYBkP+jQQBy6XudwObRTH0pwyeKLALWrA==", - "requires": { - "min-dash": "^4.0.0", - "moddle": "^6.0.0", - "moddle-xml": "^10.0.0" + "node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/unified-args": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-10.0.0.tgz", + "integrity": "sha512-PqsqxwkXpGSLiMkbjNnKU33Ffm6gso6rAvz1TlBGzMBx3gpx7ewIhViBX8HEWmy0v7pebA5PM6RkRWWaYmtfYw==", "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "dependencies": { + "@types/text-table": "^0.2.0", + "camelcase": "^7.0.0", + "chalk": "^5.0.0", + "chokidar": "^3.0.0", + "fault": "^2.0.0", + "json5": "^2.0.0", + "minimist": "^1.0.0", + "text-table": "^0.2.0", + "unified-engine": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "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, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "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/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" + } }, - "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "node_modules/unified-args/node_modules/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": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/unified-args/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true + "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" + } }, - "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 - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "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/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, - "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" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "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" } }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/unified-args/node_modules/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": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "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.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true + "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" + } }, - "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/unified-args/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, - "requires": { - "min-dash": "^3.0.0" + "dependencies": { + "is-glob": "^4.0.1" }, + "engines": { + "node": ">= 6" + } + }, + "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": { - "min-dash": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz", - "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==", - "dev": true - } + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "caniuse-lite": { - "version": "1.0.30001378", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001378.tgz", - "integrity": "sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA==", - "dev": true + "node_modules/unified-args/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" + } }, - "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha512-YTHf80rJ8M5/cJoFKEV1y3PnexbGs0vSHjouRRU8gLM05Nc3Mqq9zor/P4SCqB/sgvKRLvya7wHLC1XQ9pTjgQ==", + "node_modules/unified-args/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, - "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" + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "chai-match": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chai-match/-/chai-match-1.1.1.tgz", - "integrity": "sha1-OfsKLmt8j2OG3P6tSNFIqRX6bEY=", - "dev": true + "node_modules/unified-args/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" + } }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "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, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "engines": { + "node": ">=0.10.0" } }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true + "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" + } }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", + "node_modules/unified-args/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, - "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" + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "node_modules/unified-engine": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-10.1.0.tgz", + "integrity": "sha512-5+JDIs4hqKfHnJcVCxTid1yBoI/++FfF/1PFdSMpaftZZZY+qg2JFruRbf7PaIwa9KgLotXQV3gSjtY0IdcFGQ==", + "dev": true, + "dependencies": { + "@types/concat-stream": "^2.0.0", + "@types/debug": "^4.0.0", + "@types/is-empty": "^1.0.0", + "@types/node": "^18.0.0", + "@types/unist": "^2.0.0", + "concat-stream": "^2.0.0", + "debug": "^4.0.0", + "fault": "^2.0.0", + "glob": "^8.0.0", + "ignore": "^5.0.0", + "is-buffer": "^2.0.0", + "is-empty": "^1.0.0", + "is-plain-obj": "^4.0.0", + "load-plugin": "^5.0.0", + "parse-json": "^6.0.0", + "to-vfile": "^7.0.0", + "trough": "^2.0.0", + "unist-util-inspect": "^7.0.0", + "vfile-message": "^3.0.0", + "vfile-reporter": "^7.0.0", + "vfile-statistics": "^2.0.0", + "yaml": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "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/unified-engine/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "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/unified-engine/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": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.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" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "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/unified-engine/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "node_modules/unified-engine/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" } }, - "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/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, - "requires": { - "color-name": "1.1.3" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "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 - }, - "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 - }, - "component-event": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.1.4.tgz", - "integrity": "sha512-GMwOG8MnUHP1l8DZx1ztFO0SJTFnIzZnBDkXAj8RM2ntV2A6ALlDxgbMY1Fvxlg6WPQ+5IM/a6vg4PEYbjg/Rw==" - }, - "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 - }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "node_modules/unified-engine/node_modules/lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "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 - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "node_modules/unified-engine/node_modules/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "dev": true, - "requires": { - "safe-buffer": "~5.1.1" + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "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": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "node_modules/unified-engine/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 }, - "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/unified-engine/node_modules/parse-json": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-6.0.2.tgz", + "integrity": "sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA==", "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" + "dependencies": { + "@babel/code-frame": "^7.16.0", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^2.3.1", + "lines-and-columns": "^2.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "node_modules/unified-lint-rule": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.1.tgz", + "integrity": "sha512-vsLHyLZFstqtGse2gvrGwasOmH8M2y+r2kQMoDSWzSqUkQx2MjHjvZuGSv5FUaiv4RQO1bHRajy7lSGp7XWq5A==", "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "cpx": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz", - "integrity": "sha512-jHTjZhsbg9xWgsP2vuNW2jnnzBX+p4T+vNI9Lbjzs1n4KhOfa22bQppiFYLsWQKd8TzmL5aSP/Me3yfsCwXbDA==", + "node_modules/unified-message-control": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz", + "integrity": "sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==", "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" - }, "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - } + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^3.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/unified-message-control/node_modules/unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", "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" - } - } + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "node_modules/unified-message-control/node_modules/unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", "dev": true, - "requires": { - "node-fetch": "2.6.7" + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/unified/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "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" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "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/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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "custom-event": { + "node_modules/union-value": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", - "dev": true - }, - "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==", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, - "requires": { - "ms": "2.0.0" + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "decamelize": { + "node_modules/unist-util-find-after": { "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-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=", - "dev": true + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.0.tgz", + "integrity": "sha512-gfpsxKQde7atVF30n5Gff2fQhAc4/HTOV4CvkXpTg9wRfQhZWdXitpyXHWB6YcYgnsxLx+4gGHeVjCTAAp9sjw==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "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/unist-util-generated": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", + "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==", "dev": true, - "requires": { - "type-detect": "^4.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "node_modules/unist-util-inspect": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-7.0.1.tgz", + "integrity": "sha512-gEPeSrsYXus8012VJ00p9uZC8D0iogtLLiHlBgvS61hU22KNKduQhMKezJm83viHlLf3TYS2y9SDEFglWPDMKw==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "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/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "define-lazy-prop": { + "node_modules/unist-util-modify-children": { "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.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-2.0.0.tgz", + "integrity": "sha512-HGrj7JQo9DwZt8XFsX8UD4gGqOsIlCih9opG6Y+N11XqkBGKzHo8cvDi+MfQQgiZ7zXRUiQREYHhjOBHERTMdg==", "dev": true, - "requires": { - "object-keys": "^1.0.12" + "dependencies": { + "array-iterate": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/unist-util-position": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", + "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, "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 - } + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "node_modules/unist-util-stringify-position": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", + "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", "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" + "dependencies": { + "@types/unist": "^2.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "dev": true, "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 - }, - "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" - } - } + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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 + "node_modules/unist-util-visit-children": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-1.1.4.tgz", + "integrity": "sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true + "node_modules/unist-util-visit-parents": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", + "integrity": "sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "devtools-protocol": { - "version": "0.0.1068969", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1068969.tgz", - "integrity": "sha512-ATFTrPbY1dKYhPPvpjtwWKSK2mIwGmRwX54UASn9THEuIZCe2n9k3vVuMmt6jWeL+e5QaaguEv/pMyR+JQB7VQ==", - "dev": true + "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" + } }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true + "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" + } }, - "diagram-js": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.7.0.tgz", - "integrity": "sha512-NGXQzrYpcC8dZgUSpIT0KwAlCX1ncfiGJr9h6NnAP9ylx/PjQ1ywiLwWQa7nk7Rx63GtJghs6KNF5/sISpeTmw==", - "requires": { - "@bpmn-io/diagram-js-ui": "^0.2.2", - "clsx": "^1.2.1", - "css.escape": "^1.5.1", - "didi": "^9.0.0", - "hammerjs": "^2.0.1", - "inherits-browser": "^0.1.0", - "min-dash": "^4.0.0", - "min-dom": "^4.0.2", - "object-refs": "^0.3.0", - "path-intersection": "^2.2.1", - "tiny-svg": "^3.0.0" + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "diagram-js-direct-editing": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-2.0.0.tgz", - "integrity": "sha512-/12OWL0B0RMCfaT1w3723c729MD42r5fay4wtm2DvxNFNBMdPaEvOHCTA/khLKjFzOzMVKxSzbAp7IEwBGonVw==", - "requires": { - "min-dash": "^4.0.0", - "min-dom": "^4.0.2" + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "didi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.0.tgz", - "integrity": "sha512-bOZ7WAah3t8TxKV81pbIivHjWyABot49YXG1M3QztnUlZDHz3MRNJ1nZO87JbqrkqNI/2GR4ncHfXdGIP9LX+w==" + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "dir-glob": { + "node_modules/unset-value/node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "requires": { - "path-type": "^4.0.0" + "engines": { + "node": ">=0.10.0" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", "dev": true, - "requires": { - "esutils": "^2.0.2" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "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==", + "node_modules/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==", "dev": true, - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" + "dependencies": { + "punycode": "^2.1.0" } }, - "domify": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.1.tgz", - "integrity": "sha512-x18nuiDHMCZGXr4KJSRMf/TWYtiaRo6RX8KN9fEbW54mvbQ6pieUuerC2ahBg+kEp1wycFj8MPUI0WkIOw5E9w==" - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "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==", + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, - "electron-to-chromium": { - "version": "1.4.224", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.224.tgz", - "integrity": "sha512-dOujC5Yzj0nOVE23iD5HKqrRSDj2SD7RazpZS/b/WX85MtO6/LzKDF4TlYZTBteB+7fvSg5JpWh0sN7fImNF8w==", - "dev": true + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "encodeurl": { + "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "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, - "requires": { - "once": "^1.4.0" + "engines": { + "node": ">= 0.4.0" } }, - "engine.io": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", - "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", "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" - }, "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 - }, - "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true, - "requires": {} - } + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" } }, - "engine.io-parser": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", - "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "node_modules/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==", "dev": true }, - "enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "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, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, "dependencies": { - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - } + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true + "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" + } }, - "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/vfile": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.6.tgz", + "integrity": "sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==", "dev": true, - "requires": { - "is-arrayish": "^0.2.1" + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", "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" + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true + "node_modules/vfile-message": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.3.tgz", + "integrity": "sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "node_modules/vfile-reporter": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.4.tgz", + "integrity": "sha512-4cWalUnLrEnbeUQ+hARG5YZtaHieVK3Jp4iG5HslttkVl+MHunSGNAIrODOTLbtjWsNZJRMCkL66AhvZAYuJ9A==", "dev": true, - "requires": { - "has": "^1.0.3" + "dependencies": { + "@types/supports-color": "^8.0.0", + "string-width": "^5.0.0", + "supports-color": "^9.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-sort": "^3.0.0", + "vfile-statistics": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/vfile-reporter/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, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "node_modules/vfile-reporter/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, + "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" + } }, - "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/vfile-reporter/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } }, - "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=", - "dev": true + "node_modules/vfile-reporter/node_modules/supports-color": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.3.1.tgz", + "integrity": "sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } }, - "eslint": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", - "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "node_modules/vfile-sort": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.0.tgz", + "integrity": "sha512-fJNctnuMi3l4ikTVcKpxTbzHeCgvDhnI44amA3NVDvA6rTC6oKCFpCVyT5n2fFMr3ebfr+WVQZedOCd73rzSxg==", "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.3", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "dependencies": { + "vfile-message": "^3.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-statistics": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.0.tgz", + "integrity": "sha512-foOWtcnJhKN9M2+20AOTlWi2dxNfAoeNIoxD5GXcO182UJyId4QrXa41fWrgcfV3FWTjdEDy3I4cpLVcQscIMA==", + "dev": true, "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" - } + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "ansi-styles": { + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", + "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", + "dev": true + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "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.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/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-boxed-primitive/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/which-boxed-primitive/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/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "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/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/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.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "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/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": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", + "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "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/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "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/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": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "dev": true + }, + "@babel/core": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "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.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.3.tgz", + "integrity": "sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + } + }, + "@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-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "dev": true + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "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 + } + } + }, + "@babel/types": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@bpmn-io/diagram-js-ui": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.2.tgz", + "integrity": "sha512-IgOIxOwoqsFB2mMPdXtcbPVPjdYkZ3huW7ipowYLhg5jdRGHlBronQ+LER+lfWro6sPtzEsw7qX8D8Yq9M2S5g==", + "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 + }, + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "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.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "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 + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "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 + } + } + }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@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.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@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.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/config": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-6.1.0.tgz", + "integrity": "sha512-fPVlvy6MmSN0zgJU1TOD0fimnKVmcFpK3WuPyIQfNtCE+HMkFDN1mIKBKhUNow5QYHmCzMvGbu7pAgwdlSoaQA==", + "dev": true, + "requires": { + "@npmcli/map-workspaces": "^3.0.0", + "ini": "^3.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "read-package-json-fast": "^3.0.0", + "semver": "^7.3.5", + "walk-up-path": "^1.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@npmcli/map-workspaces": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.1.tgz", + "integrity": "sha512-QXwE2p5zRTP6X8Irgf/swYwwdQEalSA1GBm0IGE/86R5EJbUGgKMOP0kOjaJWJxaWPkSqyhM8N50SPxFHTfkNg==", + "dev": true, + "requires": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^8.0.1", + "minimatch": "^5.0.1", + "read-package-json-fast": "^3.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "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 + }, + "@rollup/plugin-commonjs": { + "version": "23.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.2.tgz", + "integrity": "sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.26.4" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@rollup/plugin-json": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-5.0.1.tgz", + "integrity": "sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1" + } + }, + "@rollup/plugin-node-resolve": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", + "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.0", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + } + } + }, + "@rollup/plugin-replace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.1.tgz", + "integrity": "sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.26.4" + } + }, + "@rollup/plugin-terser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.1.0.tgz", + "integrity": "sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==", + "dev": true, + "requires": { + "terser": "^5.15.1" + } + }, + "@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } + } + }, + "@sinonjs/samsam": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", + "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "@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 + }, + "@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.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "@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": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "@types/estree-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.0.tgz", + "integrity": "sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "@types/extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz", + "integrity": "sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw==", + "dev": true + }, + "@types/github-slugger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/github-slugger/-/github-slugger-1.3.0.tgz", + "integrity": "sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g==", + "dev": true + }, + "@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "dev": true, + "requires": { + "@types/unist": "*" + } + }, + "@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.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-1.0.0.tgz", + "integrity": "sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==", + "dev": true, + "requires": { + "@types/unist": "*" + } + }, + "@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "dev": true + }, + "@types/pluralize": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.29.tgz", + "integrity": "sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA==", + "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.1", + "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==", + "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/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", + "dev": true + }, + "@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "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", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.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.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "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": {} + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + }, + "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 + } + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "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" + }, + "dependencies": { + "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 + } + } + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "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": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "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 + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "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-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.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "dependencies": { + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^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" + } + }, + "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 + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "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" + } + }, + "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 + } + } + }, + "array-iterate": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.4.tgz", + "integrity": "sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA==", + "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 + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^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" + } + }, + "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 + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "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" + } + }, + "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 + } + } + }, + "array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^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" + } + }, + "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 + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "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" + } + }, + "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 + } + } + }, + "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 + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "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 + }, + "babel-loader": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", + "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "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=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "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 + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "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.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": 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 + }, + "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==", + "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" + } + } + } + }, + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "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.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "bpmn-font": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.12.0.tgz", + "integrity": "sha512-JQBXri5Dp5q+YgvpeTKkETnwr2eCLlUjIjIBPDmAVP1hZD0dS2Om59IjX/FCTf+/Ja1+AJw6ClEGW6DFIaVLhQ==", + "dev": true + }, + "bpmn-moddle": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-8.0.0.tgz", + "integrity": "sha512-mHmtIVzUyZcPMKKl/REq151gYxEtZxvivKnIEp/RtuRm8SOgxAK58uYBkP+jQQBy6XudwObRTH0pwyeKLALWrA==", + "requires": { + "min-dash": "^4.0.0", + "moddle": "^6.0.0", + "moddle-xml": "^10.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "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.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "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==", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "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" + } + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "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.30001378", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001378.tgz", + "integrity": "sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA==", + "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": "4.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-YTHf80rJ8M5/cJoFKEV1y3PnexbGs0vSHjouRRU8gLM05Nc3Mqq9zor/P4SCqB/sgvKRLvya7wHLC1XQ9pTjgQ==", + "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" + } + }, + "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==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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 + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", + "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" + } + }, + "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 + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "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 + } + } + }, + "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==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "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 + }, + "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 + }, + "component-event": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.1.4.tgz", + "integrity": "sha512-GMwOG8MnUHP1l8DZx1ztFO0SJTFnIzZnBDkXAj8RM2ntV2A6ALlDxgbMY1Fvxlg6WPQ+5IM/a6vg4PEYbjg/Rw==" + }, + "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, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "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": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "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": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + }, + "cpx": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz", + "integrity": "sha512-jHTjZhsbg9xWgsP2vuNW2jnnzBX+p4T+vNI9Lbjzs1n4KhOfa22bQppiFYLsWQKd8TzmL5aSP/Me3yfsCwXbDA==", + "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" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } + } + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "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" + } + } + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "requires": { + "node-fetch": "2.6.7" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "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 + }, + "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" + } + }, + "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=", + "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==", + "dev": true, + "requires": { + "type-detect": "^4.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-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.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "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 + } + } + }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "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" + }, + "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 + }, + "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" + } + } + } + }, + "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 + }, + "devtools-protocol": { + "version": "0.0.1068969", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1068969.tgz", + "integrity": "sha512-ATFTrPbY1dKYhPPvpjtwWKSK2mIwGmRwX54UASn9THEuIZCe2n9k3vVuMmt6jWeL+e5QaaguEv/pMyR+JQB7VQ==", + "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": "11.7.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.7.0.tgz", + "integrity": "sha512-NGXQzrYpcC8dZgUSpIT0KwAlCX1ncfiGJr9h6NnAP9ylx/PjQ1ywiLwWQa7nk7Rx63GtJghs6KNF5/sISpeTmw==", + "requires": { + "@bpmn-io/diagram-js-ui": "^0.2.2", + "clsx": "^1.2.1", + "css.escape": "^1.5.1", + "didi": "^9.0.0", + "hammerjs": "^2.0.1", + "inherits-browser": "^0.1.0", + "min-dash": "^4.0.0", + "min-dom": "^4.0.2", + "object-refs": "^0.3.0", + "path-intersection": "^2.2.1", + "tiny-svg": "^3.0.0" + } + }, + "diagram-js-direct-editing": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-2.0.0.tgz", + "integrity": "sha512-/12OWL0B0RMCfaT1w3723c729MD42r5fay4wtm2DvxNFNBMdPaEvOHCTA/khLKjFzOzMVKxSzbAp7IEwBGonVw==", + "requires": { + "min-dash": "^4.0.0", + "min-dom": "^4.0.2" + } + }, + "didi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.0.tgz", + "integrity": "sha512-bOZ7WAah3t8TxKV81pbIivHjWyABot49YXG1M3QztnUlZDHz3MRNJ1nZO87JbqrkqNI/2GR4ncHfXdGIP9LX+w==" + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "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": "1.4.1", + "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.1.tgz", + "integrity": "sha512-x18nuiDHMCZGXr4KJSRMf/TWYtiaRo6RX8KN9fEbW54mvbQ6pieUuerC2ahBg+kEp1wycFj8MPUI0WkIOw5E9w==" + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "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.4.224", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.224.tgz", + "integrity": "sha512-dOujC5Yzj0nOVE23iD5HKqrRSDj2SD7RazpZS/b/WX85MtO6/LzKDF4TlYZTBteB+7fvSg5JpWh0sN7fImNF8w==", + "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 + }, + "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.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "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" + }, + "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 + }, + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true, + "requires": {} + } + } + }, + "engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + } + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "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.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "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" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "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==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "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": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "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" + } + }, + "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -15947,7 +20204,16 @@ "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", "dev": true, "requires": { - "reusify": "^1.0.4" + "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" } }, "fd-slicer": { @@ -16137,6 +20403,12 @@ "for-in": "^1.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 + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -16876,6 +21148,12 @@ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, + "github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "dev": true + }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -17190,6 +21468,12 @@ "resolve-from": "^4.0.0" } }, + "import-meta-resolve": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.1.tgz", + "integrity": "sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==", + "dev": true + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -17229,6 +21513,12 @@ "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.1.0.tgz", "integrity": "sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw==" }, + "ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "dev": true + }, "internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", @@ -17359,6 +21649,12 @@ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, + "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-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", @@ -17712,6 +22008,12 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, "jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -17867,279 +22169,688 @@ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "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 + }, + "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 + }, + "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" + } + }, + "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 + }, + "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" + } + } + } + }, + "karma-chrome-launcher": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", + "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", + "dev": true, + "requires": { + "which": "^1.2.1" + } + }, + "karma-coverage": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", + "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", + "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" + } + }, + "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": { + "open": "^8.4.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.2", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz", + "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", + "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==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "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-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==", + "dev": true, + "requires": {} + }, + "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" + } + }, + "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" + } + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, + "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": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "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 + }, + "load-plugin": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-5.1.0.tgz", + "integrity": "sha512-Lg1CZa1CFj2CbNaxijTL6PCbzd4qGTlZov+iH2p5Xwy/ApcZJh+i6jMN2cYePouTfjJfrNu3nXFdEw8LvbjPFQ==", + "dev": true, + "requires": { + "@npmcli/config": "^6.0.0", + "import-meta-resolve": "^2.0.0" + } + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "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" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "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 + }, + "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": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.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.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" } }, - "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 - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "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": { - "minimist": "^1.2.6" + "color-name": "~1.1.4" } }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "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 }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "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": { - "picomatch": "^2.2.1" + "has-flag": "^4.0.0" } - }, - "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 - }, - "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==", + } + } + }, + "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": { + "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.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "is-number": "^7.0.0" + "ms": "2.1.2" } + }, + "flatted": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "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 } } }, - "karma-chrome-launcher": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", - "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", + "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 + }, + "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": { - "which": "^1.2.1" + "js-tokens": "^3.0.0 || ^4.0.0" } }, - "karma-coverage": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", - "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { - "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" + "yallist": "^4.0.0" } }, - "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==", + "magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", "dev": true, "requires": { - "open": "^8.4.0" + "sourcemap-codec": "^1.4.8" } }, - "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=", + "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" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "karma-firefox-launcher": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz", - "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "is-wsl": "^2.2.0", - "which": "^2.0.1" + "object-visit": "^1.0.0" + } + }, + "markdown-table": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "dev": true + }, + "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 + }, + "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==", + "dev": true + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "mdast-comment-marker": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.1.0.tgz", + "integrity": "sha512-/+Cfm8A83PjkqjQDB9iYqHESGuXlriCWAwRGPJjkYmxXrF4r6saxeUlOKNrf+SogTwg9E8uyHRCFHLG6/BAAdA==", + "dev": true, + "requires": { + "mdast-util-mdx-expression": "^1.1.0" + } + }, + "mdast-util-find-and-replace": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz", + "integrity": "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "dependencies": { - "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" - } + "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 } } }, - "karma-mocha": { + "mdast-util-from-markdown": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", + "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + } + }, + "mdast-util-gfm": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz", - "integrity": "sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz", + "integrity": "sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==", "dev": true, "requires": { - "minimist": "^1.2.3" + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" } }, - "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=", + "mdast-util-gfm-autolink-literal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz", + "integrity": "sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==", "dev": true, - "requires": {} + "requires": { + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + } }, - "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==", + "mdast-util-gfm-footnote": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz", + "integrity": "sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==", "dev": true, - "requires": {} + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" + } }, - "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==", + "mdast-util-gfm-strikethrough": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.2.tgz", + "integrity": "sha512-T/4DVHXcujH6jx1yqpcAYYwd+z5lAYMw4Ls6yhTfbMMtCt0PHY4gEfhW9+lKsLBtyhUGKRIzcUA2FATVqnvPDA==", "dev": true, "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "webpack-merge": "^4.1.5" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "mdast-util-gfm-table": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.6.tgz", + "integrity": "sha512-uHR+fqFq3IvB3Rd4+kzXW8dmpxUhvgCQZep6KdjsLK4O6meK5dYZEayLtIxNus1XO3gfjfcIFe8a7L0HZRGgag==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "@types/mdast": "^3.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.3.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==", + "mdast-util-gfm-task-list-item": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz", + "integrity": "sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + } + }, + "mdast-util-heading-style": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.0.tgz", + "integrity": "sha512-q9+WW2hJduW51LgV2r/fcU5wIt2GLFf0yYHxyi0f2aaxnC63ErBSOAJlhP6nbQ6yeG5rTCozbwOi4QNDPKV0zw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0" + } + }, + "mdast-util-mdx-expression": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.1.tgz", + "integrity": "sha512-TTb6cKyTA1RD+1su1iStZ5PAv3rFfOUKcoU5EstUpv/IZo63uDX03R8+jXjMEhcobXnNOiG6/ccekvVl4eV1zQ==", + "dev": true, + "requires": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + } + }, + "mdast-util-phrasing": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.0.tgz", + "integrity": "sha512-S+QYsDRLkGi8U7o5JF1agKa/sdP+CNGXXLqC17pdTVL8FHHgQEiwFGa9yE5aYtUxNiFGYoaDy9V1kC85Sz86Gg==", "dev": true, "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "@types/mdast": "^3.0.0", + "unist-util-is": "^5.0.0" } }, - "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 - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "mdast-util-to-markdown": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true + "mdast-util-to-nlcst": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-5.2.1.tgz", + "integrity": "sha512-Xznpj85MsJnLQjBboajOovT2fAAvbbbmYutpFgzLi9pjZEOkgGzjq+t6fHcge8uzZ5uEkj5pigzw2QrnIVq/kw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "@types/nlcst": "^1.0.0", + "@types/unist": "^2.0.0", + "nlcst-to-string": "^3.0.0", + "unist-util-position": "^4.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0" + } }, - "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==", + "mdast-util-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", "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==", + "mdast-util-toc": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-6.1.0.tgz", + "integrity": "sha512-0PuqZELXZl4ms1sF7Lqigrqik4Ll3UhbI+jdTrfw7pZ9QPawgl7LD4GQ8MkU7bT/EwiVqChNTbifa2jLLKo76A==", "dev": true, "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "@types/extend": "^3.0.0", + "@types/github-slugger": "^1.0.0", + "@types/mdast": "^3.0.0", + "extend": "^3.0.0", + "github-slugger": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^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" - } - }, - "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" - } - }, - "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==", + "unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", "dev": true, "requires": { - "color-name": "~1.1.4" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" } }, - "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 - }, - "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==", + "unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" } } } }, - "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": { - "date-format": "^4.0.13", - "debug": "^4.3.4", - "flatted": "^3.2.6", - "rfdc": "^1.3.0", - "streamroller": "^3.1.2" + "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 + }, + "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 + }, + "micromark": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", + "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", + "dev": true, + "requires": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" }, "dependencies": { "debug": { @@ -18151,12 +22862,6 @@ "ms": "2.1.2" } }, - "flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -18165,90 +22870,306 @@ } } }, - "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==", + "micromark-core-commonmark": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", + "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", + "dev": true, + "requires": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "micromark-extension-gfm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", + "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", "dev": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "magic-string": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", - "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "micromark-extension-gfm-autolink-literal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.8" + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, - "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==", + "micromark-extension-gfm-footnote": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz", + "integrity": "sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==", "dev": true, "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.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 + "micromark-extension-gfm-strikethrough": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", + "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", + "dev": true, + "requires": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } }, - "map-visit": { + "micromark-extension-gfm-table": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", + "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", + "dev": true, + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-extension-gfm-tagfilter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", + "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", + "dev": true, + "requires": { + "micromark-util-types": "^1.0.0" + } + }, + "micromark-extension-gfm-task-list-item": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", + "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", + "dev": true, + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-factory-destination": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", + "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", "dev": true, "requires": { - "object-visit": "^1.0.0" + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "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==", - "dev": true + "micromark-factory-label": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", + "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", + "dev": true, + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } }, - "math-random": { + "micromark-factory-space": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", + "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "dev": true, + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-factory-title": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", + "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", + "dev": true, + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-factory-whitespace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", + "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", + "dev": true, + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", + "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", + "dev": true, + "requires": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-chunked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", + "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "dev": true, + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-classify-character": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", + "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "dev": true, + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-combine-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", + "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "dev": true, + "requires": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-decode-numeric-character-reference": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", + "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", + "dev": true, + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-decode-string": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", + "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", + "dev": true, + "requires": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-encode": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", + "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", "dev": true }, - "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 + "micromark-util-html-tag-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", + "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", + "dev": true + }, + "micromark-util-normalize-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", + "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "dev": true, + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-resolve-all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", + "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "dev": true, + "requires": { + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-sanitize-uri": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", + "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", + "dev": true, + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true + "micromark-util-subtokenize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", + "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", + "dev": true, + "requires": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } }, - "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==", + "micromark-util-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", + "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", "dev": true }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "micromark-util-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", + "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", "dev": true }, "micromatch": { @@ -18620,6 +23541,12 @@ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -18715,6 +23642,49 @@ "path-to-regexp": "^1.7.0" } }, + "nlcst-is-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nlcst-is-literal/-/nlcst-is-literal-2.1.0.tgz", + "integrity": "sha512-jaEIXvIreWx4lfkRa+B3toTTxQgDxnECncbEQVSUVfRWxamQFbRHgxyfrt0aMnuoq5AMd3CQHl5SHGGruOUOdQ==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "@types/unist": "^2.0.0", + "nlcst-to-string": "^3.0.0" + } + }, + "nlcst-normalize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nlcst-normalize/-/nlcst-normalize-3.1.0.tgz", + "integrity": "sha512-kRWfUwtffmU26wPAJ25St5rec29PhV8F6dKaa7PxGhH3uytsGakfLyOEEm1mULzWOdfyDb03aE+OKp7h0OJuhA==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "nlcst-to-string": "^3.0.0" + } + }, + "nlcst-search": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nlcst-search/-/nlcst-search-3.1.0.tgz", + "integrity": "sha512-d+0fXxF0d5oFAeeyuoGbIYcbiixE9Xt/lsmt491jjPyabXRoIRBE0++U+G8kbDyJFRk1bMQnGFpMCzeoMlDYfQ==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "@types/unist": "^2.0.0", + "nlcst-is-literal": "^2.0.0", + "nlcst-normalize": "^3.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "nlcst-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-3.1.0.tgz", + "integrity": "sha512-Y8HQWKw/zrHTCnu2zcFBN1dV6vN0NUG7s5fkEj380G8tF3R+vA2KG+tDl2QoHVQCTHGHVXwoni2RQkDSFQb1PA==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0" + } + }, "node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -18730,6 +23700,15 @@ "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, + "nopt": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.0.0.tgz", + "integrity": "sha512-e6Qw1rcrGoSxEH0hQ4GBSdUjkMOtXGhGFXdNT/3ZR0S37eR9DMj5za3dEDWE6o1T3/DP8ZOsPP4MIiky0c3QeA==", + "dev": true, + "requires": { + "abbrev": "^2.0.0" + } + }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", @@ -18751,6 +23730,12 @@ "remove-trailing-separator": "^1.0.1" } }, + "npm-normalize-package-bin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", + "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "dev": true + }, "npm-run-all": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", @@ -18829,6 +23814,12 @@ } } }, + "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 + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -19395,6 +24386,26 @@ "callsites": "^3.0.0" } }, + "parse-english": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-english/-/parse-english-5.0.0.tgz", + "integrity": "sha512-sMe/JmsY6g21aJCAm8KgCH90a9zCZ7aGSriSJ5B0CcGEsDN7YmiCk3+1iKPE1heDG6zYY4Xf++V8llWtCvNBSQ==", + "dev": true, + "requires": { + "nlcst-to-string": "^2.0.0", + "parse-latin": "^5.0.0", + "unist-util-modify-children": "^2.0.0", + "unist-util-visit-children": "^1.0.0" + }, + "dependencies": { + "nlcst-to-string": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz", + "integrity": "sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==", + "dev": true + } + } + }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -19419,6 +24430,44 @@ "lines-and-columns": "^1.1.6" } }, + "parse-latin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-5.0.1.tgz", + "integrity": "sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==", + "dev": true, + "requires": { + "nlcst-to-string": "^3.0.0", + "unist-util-modify-children": "^3.0.0", + "unist-util-visit-children": "^2.0.0" + }, + "dependencies": { + "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 + }, + "unist-util-modify-children": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-3.1.0.tgz", + "integrity": "sha512-L0UizdncPZ1NIwpmkwFdLo2NaK2Eb5LU/vaQ7lZGkAaOBZfsHp+8T/gVWPVmmMO1hj6gc+XeMoytut8jr7fdyA==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "array-iterate": "^2.0.0" + } + }, + "unist-util-visit-children": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-2.0.1.tgz", + "integrity": "sha512-2cEU3dhV1hMfO9ajwb8rJsDedMfsahsm6fCfR8LxDR/w7KcB5lzHQ9dBTQIXsWGNWBFH5MPmaFP3Xh0dWLqClQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0" + } + } + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -19540,6 +24589,12 @@ } } }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -19563,6 +24618,12 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, + "proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true + }, "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", @@ -19586,6 +24647,15 @@ "react-is": "^16.13.1" } }, + "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" + } + }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -19668,6 +24738,12 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "quotation": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/quotation/-/quotation-2.0.2.tgz", + "integrity": "sha512-FeUlLe40ROXHVWLZkzmeR2PNYWdkvTXEXhW6FX8axRv1ODt8Gxed3APrE1Qb5i1n70ZzZGRmvs0jY3v/BRcJQQ==", + "dev": true + }, "rambda": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.2.1.tgz", @@ -19732,6 +24808,24 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, + "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": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "dependencies": { + "json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true + } + } + }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -20034,48 +25128,1116 @@ } } }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "remark": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.2.tgz", + "integrity": "sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "remark-parse": "^10.0.0", + "remark-stringify": "^10.0.0", + "unified": "^10.0.0" + } + }, + "remark-cli": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-11.0.0.tgz", + "integrity": "sha512-8JEWwArXquRq1/In4Ftz7gSG9Scwb1ijT2/dEuBETW9omqhmMRxcfjZ3iKqrak3BnCJeZSXCdWEmPhFKC8+RUQ==", + "dev": true, + "requires": { + "remark": "^14.0.0", + "unified-args": "^10.0.0" + } + }, + "remark-comment-config": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/remark-comment-config/-/remark-comment-config-7.0.1.tgz", + "integrity": "sha512-/+JynO760CWRiHCIaBrlH3fdHqiJO+JDMS931uZoVcHBxxDnkivME+600NAUrU9cNYkVe1uN6a0KyCfE3q4P+g==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-comment-marker": "^2.0.0", + "mdast-util-to-markdown": "^1.0.0", + "unified": "^10.0.0" + } + }, + "remark-gfm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" + } + }, + "remark-github": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-11.2.4.tgz", + "integrity": "sha512-GJjWFpwqdrHHhPWqMbb8+lqFLiHQ9pCzUmXmRrhMFXGpYov5n2ljsZzuWgXlfzArfQYkiKIZczA2I8IHYMHqCA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.1.tgz", + "integrity": "sha512-zhe6twuqgkx/9KgZyNyaO0cceA4jQuJcyzMOBC+JZiAzMN6mFUmcssWZyY30ko8ut9vQDMX/pyQnolGn+Fg/Tw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "remark-message-control": "^7.0.0", + "unified": "^10.1.0" + } + }, + "remark-lint-blockquote-indentation": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.1.tgz", + "integrity": "sha512-u9cjedM6zcK8vRicis5n/xeOSDIC3FGBCKc3K9pqw+nNrOjY85FwxDQKZZ/kx7rmkdRZEhgyHak+wzPBllcxBQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-checkbox-character-style": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.1.tgz", + "integrity": "sha512-KPSW3wfHfB8m9hzrtHiBHCTUIsOPX5nZR7VM+2pMjwqnhI6Mp94DKprkNo1ekNZALNeoZIDWZUSYxSiiwFfmVQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-checkbox-content-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.1.tgz", + "integrity": "sha512-apkM6sqCwAHwNV0v6KuEbq50fH3mTAV4wKTwI1nWgEj33/nf4+RvLLPgznoc2olZyeAIHR69EKPQiernjCXPOw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + } + }, + "remark-lint-code-block-style": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-3.1.0.tgz", + "integrity": "sha512-Hv4YQ8ueLGpjItla4CkcOkcfGj+nlquqylDgCm1/xKnW+Ke2a4qVTMVJrP9Krp4FWmXgktJLDHjhRH+pzhDXLg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-definition-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-definition-case/-/remark-lint-definition-case-3.1.1.tgz", + "integrity": "sha512-dirX0BSfbm1Ixx4Hv4xRQliEP1rw8dDitw2Om3XcO2QqF8bWrzF06/xeMlDNAaT77Cxqb9S7bODo/q+CYUxyWQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-definition-spacing": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.1.tgz", + "integrity": "sha512-PR+cYvc0FMtFWjkaXePysW88r7Y7eIwbpUGPFDIWE48fiRiz8U3VIk05P3loQCpCkbmUeInAAYD8tIFPTg4Jlg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-emphasis-marker": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-3.1.1.tgz", + "integrity": "sha512-VduuT+KAr0vA78xBLJdIcenCQja4mAd81aNACfdz7BUPLphIQa84D5uzl+nZatSaCXLebCNp5jP/bzVUsBmRKw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-fenced-code-flag": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.1.tgz", + "integrity": "sha512-FFVZmYsBccKIIEgOtgdZEpQdARtAat1LTLBydnIpyNIvcntzWwtrtlj9mtjL8ZoSRre8HtwmEnBFyOfmM/NWaA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-fenced-code-marker": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.1.tgz", + "integrity": "sha512-x/t8sJWPvE46knKz6zW03j9VX5477srHUmRFbnXhZ3K8e37cYVUIvfbPhcPCAosSsOki9+dvGfZsWQiKuUNNfQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-file-extension": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.1.1.tgz", + "integrity": "sha512-r6OMe27YZzr2NFjPMbBxgm8RZxigRwzeFSjapPlqcxk0Q0w/6sosJsceBNlGGlk00pltvv7NPqSexbXUjirrQQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + } + }, + "remark-lint-final-definition": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.1.1.tgz", + "integrity": "sha512-94hRV+EBIuLVFooiimsZwh5ZPEcTqjy5wr7LgqxoUUWy+srTanndaLoki7bxQJeIcWUnomZncsJAyL0Lo7toxw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-final-newline": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.1.1.tgz", + "integrity": "sha512-cgKYaI7ujUse/kV4KajLv2j1kmi1CxpAu+w7wIU0/Faihhb3sZAf4a5ACf2Wu8NoTSIr1Q//3hDysG507PIoDg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + } + }, + "remark-lint-first-heading-level": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.1.1.tgz", + "integrity": "sha512-Z2+gn9sLyI/sT2c1JMPf1dj9kQkFCpL1/wT5Skm5nMbjI8/dIiTF2bKr9XKsFZUFP7GTA57tfeZvzD1rjWbMwg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-hard-break-spaces": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.1.tgz", + "integrity": "sha512-UfwFvESpX32qwyHJeluuUuRPWmxJDTkmjnWv2r49G9fC4Jrzm4crdJMs3sWsrGiQ3mSex6bgp/8rqDgtBng2IA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-heading-style": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.1.tgz", + "integrity": "sha512-Qm7ZAF+s46ns0Wo5TlHGIn/PPMMynytn8SSLEdMIo6Uo/+8PAcmQ3zU1pj57KYxfyDoN5iQPgPIwPYMLYQ2TSQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-heading-style": "^2.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-link-title-style": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-link-title-style/-/remark-lint-link-title-style-3.1.1.tgz", + "integrity": "sha512-JWWiuUFy/N2iwQ3eWIxFy6olX8D7xCFw8LoM0vZI2CHTZJrmDMaWwnl8jziP+HHHheFX3wkVqsoaYod536ArRw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.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-list-item-bullet-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.1.tgz", + "integrity": "sha512-NFvXVj1Nm12+Ma48NOjZCGb/D0IhmUcxyrTCpPp+UNJhEWrmFxM8nSyIiZgXadgXErnuv+xm2Atw7TAcZ9a1Cg==", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-visit": "^4.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-list-item-indent": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.1.tgz", + "integrity": "sha512-OSTG64e52v8XBmmeT0lefpiAfCMYHJxMMUrMnhTjLVyWAbEO0vqqR5bLvfLwzK+P4nY2D/8XKku0hw35dM86Rw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-maximum-heading-length": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-3.1.1.tgz", + "integrity": "sha512-hTOvRDnULpu0S+k51lovT28TLBgtw8XR0qq+mECSsoyuT4C38UBjQRic5OPo68AZMH0ad/93uj6yvfFtH0K8Lg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-maximum-line-length": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.2.tgz", + "integrity": "sha512-KwddpVmNifTHNXwTQQgVufuUvv0hhu9kJVvmpNdEvfEc7tc3wBkaavyi3kKsUB8WwMhGtZuXVWy6OdPC1axzhw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-blockquote-without-marker": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.1.tgz", + "integrity": "sha512-7jL7eKS25kKRhQ7SKKB5eRfNleDMWKWAmZ5Y/votJdDoM+6qsopLLumPWaSzP0onyV3dyHRhPfBtqelt3hvcyA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + } + }, + "remark-lint-no-consecutive-blank-lines": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.2.tgz", + "integrity": "sha512-wRsR3kFgHaZ4mO3KASU43oXGLGezNZ64yNs1ChPUacKh0Bm7cwGnxN9GHGAbOXspwrYrN2eCDxzCbdPEZi2qKw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-duplicate-defined-urls": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-defined-urls/-/remark-lint-no-duplicate-defined-urls-2.1.1.tgz", + "integrity": "sha512-iMiJVabYt22vxfinDkf6xOSCJ9N6kDfnqjM4U8cFOHIui6Oo5rjlfl2qYHl7uRFaIjwKIZBho4NL07vOcxp+KQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-duplicate-definitions": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.1.tgz", + "integrity": "sha512-9p+nBz8VvV+t4g/ALNLVN8naV+ffAzC4ADyg9QivzmKwLjyF93Avt4HYNlb2GZ+aoXRQSVG1wjjWFeDC9c7Tdg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-duplicate-headings-in-section": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-headings-in-section/-/remark-lint-no-duplicate-headings-in-section-3.1.1.tgz", + "integrity": "sha512-hv8GJXcPmpMdIxyQUuem7OUe9pR475Tmq+7ocyRDGODMpgBfMSO6gvNGJkdZin1zeGba0EF8ku3ksvkyodKX1Q==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-emphasis-as-heading": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-3.1.1.tgz", + "integrity": "sha512-F45yuLsYVP4r6OjVtePKk7Aymnf3rBLHXYjnSJggEaYn0j+72xOBLrqmj6ii5YGfDsBwG2pDNTBx4vm3xM7P0Q==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-empty-url": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-empty-url/-/remark-lint-no-empty-url-3.1.1.tgz", + "integrity": "sha512-zxIkDMggf6R/NCDkYAsaVHaFhklkp6WvV/wdeJAzT3BverGFnM8QIHUAv8YIQvCGqYWov275SVN1eu81DoU95g==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-file-name-articles": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.1.tgz", + "integrity": "sha512-7fiHKQUGvP4WOsieZ1dxm8WQWWjXjPj0Uix6pk2dSTJqxvaosjKH1AV0J/eVvliat0BGH8Cz4SUbuz5vG6YbdQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + } + }, + "remark-lint-no-file-name-consecutive-dashes": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.1.tgz", + "integrity": "sha512-tM4IpURGuresyeIBsXT5jsY3lZakgO6IO59ixcFt015bFjTOW54MrBvdJxA60QHhf5DAyHzD8wGeULPSs7ZQfg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + } + }, + "remark-lint-no-file-name-irregular-characters": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-2.1.1.tgz", + "integrity": "sha512-rVeCv1XRdLtp/rxLaiFKElaIHuIlokypV/c2aCG3VVYcQ4+ZmJxq018kEsolR2+Dv9m3vKp8Fy1482US4g4WKA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + } + }, + "remark-lint-no-file-name-mixed-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-2.1.1.tgz", + "integrity": "sha512-mJU3hYzyXNo8NkoSafPcsgr+Gema+vDCzNWlLw05UdFXJK/cVy+6DVsbrEFjrz8L+WF7uQmUHBtTvd91SqoItg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + } + }, + "remark-lint-no-file-name-outer-dashes": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.1.tgz", + "integrity": "sha512-2kRcVNzZb0zS3jE+Iaa6MEpplhqXSdsHBILS+BxJ4cDGAAIdeipY8hKaDLdZi+34wvrfnDxNgvNLcHpgqO+OZA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + } + }, + "remark-lint-no-heading-content-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.1.tgz", + "integrity": "sha512-W4zF7MA72IDC5JB0qzciwsnioL5XlnoE0r1F7sDS0I5CJfQtHYOLlxb3UAIlgRCkBokPWCp0E4o1fsY/gQUKVg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-heading-style": "^2.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-heading-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.1.tgz", + "integrity": "sha512-3vIfT7gPdpE9D7muIQ6YzSF1q27H9SbsDD7ClJRkEWxMiAzBg0obOZFOIBYukUkmGWdOR5P1EDn5n9TEzS1Fyg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-heading-like-paragraph": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-like-paragraph/-/remark-lint-no-heading-like-paragraph-3.1.1.tgz", + "integrity": "sha512-eDQkw1ir0j2VVmZd60Hy3CUAj85U7zKf59bGEBdXr2OQYJQhvme7XqKwY8QfMlBqn9lYg1/DxsGWt0+5ESIogw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-heading-punctuation": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-3.1.1.tgz", + "integrity": "sha512-ZexHx4rmsjKVF1/Fvdig0yOgpWl0wFa43+sqg880HT3PW9KmEczjSRkwlMaTlVgDzC0paNn2FXfQMuEQW4YDLg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-html": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-html/-/remark-lint-no-html-3.1.1.tgz", + "integrity": "sha512-hTaw6Ul3iAXvesWzvl+ev1tVf1SNm7hG3l7A2pj8r+1MlklKDFeaMWsxKnDh+8Rh6pj+mRnwzsbwtQxKiKs9Cw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-inline-padding": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.1.tgz", + "integrity": "sha512-++IMm6ohOPKNOrybqjP9eiclEtVX/Rd2HpF2UD9icrC1X5nvrI6tlfN55tePaFvWAB7pe6MW4LzNEMnWse61Lw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-literal-urls": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.1.tgz", + "integrity": "sha512-tZZ4gtZMA//ZAf7GJTE8S9yjzqXUfUTlR/lvU7ffc7NeSurqCBwAtHqeXVCHiD39JnlHVSW2MLYhvHp53lBGvA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-missing-blank-lines": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-missing-blank-lines/-/remark-lint-no-missing-blank-lines-3.1.1.tgz", + "integrity": "sha512-QF1gXD/jhC7NsQuRK3Ho8KAxak01s6eJRruYkNjYeqdtAzZrRu2dR1ySKFGGyDKpmfY56kb0fqIKB6V1dSAqNA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-multiple-toplevel-headings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.1.tgz", + "integrity": "sha512-bM//SIBvIkoGUpA8hR5QibJ+7C2R50PTIRrc4te93YNRG+ie8bJzjwuO9jIMedoDfJB6/+7EqO9FYBivjBZ3MA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-paragraph-content-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-paragraph-content-indent/-/remark-lint-no-paragraph-content-indent-4.1.1.tgz", + "integrity": "sha512-yIjMGz8YClzois639AJ9PRvA+9thRdwKIaFaMRFAEL7Q6U2IuwOvsBDe6Y/x1gnE8sBTwiwKYDgeF6rnBsUYrQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + } + }, + "remark-lint-no-reference-like-url": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-reference-like-url/-/remark-lint-no-reference-like-url-3.1.1.tgz", + "integrity": "sha512-ELO2uez1NO9wEb2nNRY4uVBfw4TYYUHWOnLajExGY92+i3Ylt3EmMwRONT2maJX5qKj4cu8uPi7HAkMIxq8jFg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-shell-dollars": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.1.tgz", + "integrity": "sha512-Q3Ad1TaOPxbYog5+Of/quPG3Fy+dMKiHjT8KsU7NDiHG6YJOnAJ3f3w+y13CIlNIaKc/MrisgcthhrZ7NsgXfA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-shortcut-reference-image": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.1.tgz", + "integrity": "sha512-m8tH+loDagd1JUns/T4eyulVXgVvE+ZSs7owRUOmP+dgsKJuO5sl1AdN9eyKDVMEvxHF3Pm5WqE62QIRNM48mA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-shortcut-reference-link": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.1.tgz", + "integrity": "sha512-oDJ92/jXQ842HgrBGgZdP7FA+N2jBMCBU2+jRElkS+OWVut0UaDILtNavNy/e85B3SLPj3RoXKF96M4vfJ7B2A==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-table-indentation": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.1.tgz", + "integrity": "sha512-eklvBxUSrkVbJxeokepOvFZ3n2V6zaJERIiOowR+y/Bz4dRHDMij1Ojg55AMO9yUMvxWPV3JPOeThliAcPmrMg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + } + }, + "remark-lint-no-tabs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.1.tgz", + "integrity": "sha512-+MjXoHSSqRFUUz6XHgB1z7F5zIETxhkY+lC5LsOYb1r2ZdujZQWzBzNW5ya4HH5JiDVBPhp8MrqM9cP1v7tB5g==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "vfile-location": "^4.0.0" + } + }, + "remark-lint-no-undefined-references": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.2.0.tgz", + "integrity": "sha512-EDV9B1ZXMLcKVtMQFvfvtbag4AkLcu8aUNGXoez5GJLcCAQ8Q+sG74yOtIW4xNVlVubEjl0vdkFhaKYLxvn2Sw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + } + }, + "remark-lint-no-unneeded-full-reference-image": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-unneeded-full-reference-image/-/remark-lint-no-unneeded-full-reference-image-3.1.1.tgz", + "integrity": "sha512-jXKCNrMVPHG03N87MtgNAd9j4i9LInUXMpfylrXyUw9JT4VSH5OoMzhzp1Ra2442kQRQ6Z/gd3cClPyox01BQg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-unneeded-full-reference-link": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-unneeded-full-reference-link/-/remark-lint-no-unneeded-full-reference-link-3.1.1.tgz", + "integrity": "sha512-SWSUdP9dVChVWaIxE5qkm9Uxa82BRaGWlUmGMJfUAS9y9ceOZjVcmgJ3FMW5JZrlrw0jmihR7yLRr0d2uB86sg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-no-unused-definitions": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.1.tgz", + "integrity": "sha512-/GtyBukhAxi5MEX/g/m+FzDEflSbTe2/cpe2H+tJZyDmiLhjGXRdwWnPRDp+mB9g1iIZgVRCk7T4v90RbQX/mw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-ordered-list-marker-style": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.1.tgz", + "integrity": "sha512-IWcWaJoaSb4yoSOuvDbj9B2uXp9kSj58DqtrMKo8MoRShmbj1onVfulTxoTLeLtI11NvW+mj3jPSpqjMjls+5Q==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-ordered-list-marker-value": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-3.1.1.tgz", + "integrity": "sha512-+bQZbo+v/A8CuLrO71gobJuKR4/sfnPgWyEggSa+zq+LXPK1HiMDjap0Wr07uYgcUXsXIPh+HD/5J5by6JL+vg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-rule-style": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.1.1.tgz", + "integrity": "sha512-+oZe0ph4DWHGwPkQ/FpqiGp4WULTXB1edftnnNbizYT+Wr+/ux7GNTx78oXH/PHwlnOtVIExMc4W/vDXrUj/DQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-strong-marker": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.1.tgz", + "integrity": "sha512-tX9Os2C48Hh8P8CouY4dcnAhGnR3trL+NCDqIvJvFDR9Rvm9yfNQaY2N4ZHWVY0iUicq9DpqEiJTgUsT8AGv/w==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-table-cell-padding": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.2.tgz", + "integrity": "sha512-cx5BXjHtpACa7Z51Vuqzy9BI4Z8Hnxz7vklhhrubkoB7mbctP/mR+Nh4B8eE5VtgFYJNHFwIltl96PuoctFCeQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-table-pipe-alignment": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-3.1.1.tgz", + "integrity": "sha512-WOHv2yL4ZwXHM06MIyQNnGFYKz9m2k/GFIA/6hpArF8Ph/3v8CF0J/Hb3Yyfg39e5nODw3D2G3okCO+xgyGQGA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-table-pipes": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.1.tgz", + "integrity": "sha512-mJnB2FpjJTE4s9kE1JX8gcCjCFvtGPjzXUiQy0sbPHn2YM9EWG7kvFWYoqWK4w569CEQJyxZraEPltmhDjQTjg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-lint-unordered-list-marker-style": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.1.tgz", + "integrity": "sha512-JwH8oIDi9f5Z8cTQLimhJ/fkbPwI3OpNSifjYyObNNuc4PG4/NUoe5ZuD10uPmPYHZW+713RZ8S5ucVCkI8dDA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-message-control": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.1.tgz", + "integrity": "sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-comment-marker": "^2.0.0", + "unified": "^10.0.0", + "unified-message-control": "^4.0.0", + "vfile": "^5.0.0" + } + }, + "remark-parse": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + } + }, + "remark-preset-bpmn-io": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/remark-preset-bpmn-io/-/remark-preset-bpmn-io-0.2.1.tgz", + "integrity": "sha512-TO2X/TodGrzM63j3mUWH3MoRVmXnkH8ZYDyJcBrw5/myyBZvKrSpWGxj6ArYeej+w07OTjror0EyyGU2ODSuLA==", + "dev": true, + "requires": { + "remark-comment-config": "^7.0.0", + "remark-gfm": "^3.0.0", + "remark-github": "^11.0.0", + "remark-lint-blockquote-indentation": "^3.0.0", + "remark-lint-checkbox-character-style": "^4.0.0", + "remark-lint-checkbox-content-indent": "^4.0.0", + "remark-lint-code-block-style": "^3.0.0", + "remark-lint-definition-case": "^3.0.0", + "remark-lint-definition-spacing": "^3.0.0", + "remark-lint-emphasis-marker": "^3.0.0", + "remark-lint-fenced-code-flag": "^3.0.0", + "remark-lint-fenced-code-marker": "^3.0.0", + "remark-lint-file-extension": "^2.0.0", + "remark-lint-final-definition": "^3.0.0", + "remark-lint-first-heading-level": "^3.0.0", + "remark-lint-heading-style": "^3.0.0", + "remark-lint-link-title-style": "^3.0.0", + "remark-lint-maximum-heading-length": "^3.0.0", + "remark-lint-maximum-line-length": "^3.0.0", + "remark-lint-no-consecutive-blank-lines": "^4.0.0", + "remark-lint-no-duplicate-defined-urls": "^2.0.0", + "remark-lint-no-duplicate-definitions": "^3.0.0", + "remark-lint-no-duplicate-headings-in-section": "^3.0.0", + "remark-lint-no-emphasis-as-heading": "^3.0.0", + "remark-lint-no-empty-url": "^3.0.0", + "remark-lint-no-file-name-articles": "^2.0.0", + "remark-lint-no-file-name-consecutive-dashes": "^2.0.0", + "remark-lint-no-file-name-irregular-characters": "^2.0.0", + "remark-lint-no-file-name-mixed-case": "^2.0.0", + "remark-lint-no-file-name-outer-dashes": "^2.0.0", + "remark-lint-no-heading-content-indent": "^4.0.0", + "remark-lint-no-heading-indent": "^4.0.0", + "remark-lint-no-heading-like-paragraph": "^3.0.0", + "remark-lint-no-heading-punctuation": "^3.0.0", + "remark-lint-no-html": "^3.0.0", + "remark-lint-no-missing-blank-lines": "^3.0.0", + "remark-lint-no-multiple-toplevel-headings": "^3.0.0", + "remark-lint-no-paragraph-content-indent": "^4.0.0", + "remark-lint-no-reference-like-url": "^3.0.0", + "remark-lint-no-shell-dollars": "^3.0.0", + "remark-lint-no-table-indentation": "^4.0.0", + "remark-lint-no-tabs": "^3.0.0", + "remark-lint-no-unneeded-full-reference-image": "^3.0.0", + "remark-lint-no-unneeded-full-reference-link": "^3.0.0", + "remark-lint-ordered-list-marker-value": "^3.0.0", + "remark-lint-rule-style": "^3.0.0", + "remark-lint-strong-marker": "^3.0.0", + "remark-lint-table-cell-padding": "^4.0.0", + "remark-lint-table-pipe-alignment": "^3.0.0", + "remark-lint-table-pipes": "^4.0.0", + "remark-lint-unordered-list-marker-style": "^3.0.0", + "remark-preset-lint-recommended": "^6.0.0", + "remark-retext": "^5.0.0", + "remark-toc": "^8.0.0", + "remark-validate-links": "^12.1.0", + "retext-english": "^4.0.0", + "retext-preset-bpmn-io": "^0.0.2", + "unified": "^10.0.0" + } + }, + "remark-preset-lint-recommended": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.2.tgz", + "integrity": "sha512-x9kWufNY8PNAhY4fsl+KD3atgQdo4imP3GDAQYbQ6ylWVyX13suPRLkqnupW0ODRynfUg8ZRt8pVX0wMHwgPAg==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "remark-lint": "^9.0.0", + "remark-lint-final-newline": "^2.0.0", + "remark-lint-hard-break-spaces": "^3.0.0", + "remark-lint-list-item-bullet-indent": "^4.0.0", + "remark-lint-list-item-indent": "^3.0.0", + "remark-lint-no-blockquote-without-marker": "^5.0.0", + "remark-lint-no-duplicate-definitions": "^3.0.0", + "remark-lint-no-heading-content-indent": "^4.0.0", + "remark-lint-no-inline-padding": "^4.0.0", + "remark-lint-no-literal-urls": "^3.0.0", + "remark-lint-no-shortcut-reference-image": "^3.0.0", + "remark-lint-no-shortcut-reference-link": "^3.0.0", + "remark-lint-no-undefined-references": "^4.0.0", + "remark-lint-no-unused-definitions": "^3.0.0", + "remark-lint-ordered-list-marker-style": "^3.0.0", + "unified": "^10.0.0" + } + }, + "remark-retext": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-5.0.1.tgz", + "integrity": "sha512-h3kOjKNy7oJfohqXlKp+W4YDigHD3rw01x91qvQP/cUkK5nJrDl6yEYwTujQCAXSLZrsBxywlK3ntzIX6c29aA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-to-nlcst": "^5.0.0", + "unified": "^10.0.0" + } + }, + "remark-stringify": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", + "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0", + "unified": "^10.0.0" + } + }, + "remark-toc": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/remark-toc/-/remark-toc-8.0.1.tgz", + "integrity": "sha512-7he2VOm/cy13zilnOTZcyAoyoolV26ULlon6XyCFU+vG54Z/LWJnwphj/xKIDLOt66QmJUgTyUvLVHi2aAElyg==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "@types/mdast": "^3.0.0", + "mdast-util-toc": "^6.0.0", + "unified": "^10.0.0" } }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "remark-validate-links": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/remark-validate-links/-/remark-validate-links-12.1.0.tgz", + "integrity": "sha512-+QhcQmu4WhUhxSduRbSInrFAMAFyNVX7QP0OW5AX8C6NzxMweJnwPBsCfWsV77ivIpC5L6sPbZfMLoW85UoMHQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "@types/mdast": "^3.0.0", + "github-slugger": "^1.0.0", + "hosted-git-info": "^5.0.0", + "mdast-util-to-string": "^3.0.0", + "propose": "0.0.5", + "to-vfile": "^7.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "unified-engine": "^10.0.1", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", + "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "dev": true, + "requires": { + "lru-cache": "^7.5.1" + } + }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + } } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -20139,6 +26301,135 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "retext-contractions": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/retext-contractions/-/retext-contractions-5.2.0.tgz", + "integrity": "sha512-G88PLbzHdjTBtgBFlc0Gh2uQPafJ3LpeMaBgKdS+j3hxHEVmlDZeMHRvx/5gRMyxj/QjFH0qifMM94+a/UVy6g==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "nlcst-is-literal": "^2.0.0", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "retext-diacritics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/retext-diacritics/-/retext-diacritics-4.2.0.tgz", + "integrity": "sha512-eag8Z8q2lJkWjOBuI0+5iHE5HZIVMqgPSo+ksV0sE2Z+1FIB3gMB1UNugNERwNL82F9bg6atfgcqyBIDpIutEg==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "match-casing": "^2.0.0", + "nlcst-search": "^3.0.0", + "nlcst-to-string": "^3.0.0", + "quotation": "^2.0.0", + "unified": "^10.0.0", + "unist-util-position": "^4.0.0" + } + }, + "retext-english": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/retext-english/-/retext-english-4.1.0.tgz", + "integrity": "sha512-Pky2idjvgkzfodO0GH9X4IU8LX/d4ULTnLf7S1WsBRlSCh/JdTFPafXZstJqZehtQWNHrgoCqVOiGugsNFYvIQ==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "parse-english": "^5.0.0", + "unherit": "^3.0.0", + "unified": "^10.0.0" + } + }, + "retext-indefinite-article": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/retext-indefinite-article/-/retext-indefinite-article-4.1.0.tgz", + "integrity": "sha512-vu1nJWFUVPU+TrE7eaxS6aJ9kA7+4qcsehgUx42EehcmGlWl+ilmOUKN3vnnG1JKIEmWcumB/Lg3W4whxN0YtQ==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "format": "^0.2.0", + "nlcst-to-string": "^3.0.0", + "number-to-words": "^1.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "retext-preset-bpmn-io": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/retext-preset-bpmn-io/-/retext-preset-bpmn-io-0.0.2.tgz", + "integrity": "sha512-aCKp+M9cCATFDWGoYJPbqJsHeuqx8sDbsYQfqAFDHiOOeqwsLK9bZiIJVJJclqdoYE1xArHx03xJ7nzXoK48Dg==", + "dev": true, + "requires": { + "retext-contractions": "^5.0.0", + "retext-diacritics": "^4.0.0", + "retext-indefinite-article": "^4.0.0", + "retext-quotes": "^5.0.0", + "retext-redundant-acronyms": "^4.0.0", + "retext-repeated-words": "^4.0.0", + "retext-sentence-spacing": "^5.0.0", + "unified": "^10.0.0" + } + }, + "retext-quotes": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/retext-quotes/-/retext-quotes-5.2.0.tgz", + "integrity": "sha512-Em2zjsqb6jX0lc8h8GsFZpyO9m1seoA0TzBnq6p9Y6u/hv2fMyhL8+15W7ZXTNbPul6oATnlGj8vGSqWp9+Uzg==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "@types/unist": "^2.0.6", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "retext-redundant-acronyms": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/retext-redundant-acronyms/-/retext-redundant-acronyms-4.3.0.tgz", + "integrity": "sha512-KkQcn2zpmYQL0CsZHvPd3yLWb7O0Z6sPzsmQaGzCZalD4qAhqP8TzP+svzhBN9GVgqLyk3s3cH+mrkjsUDM0RQ==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "@types/pluralize": "^0.0.29", + "nlcst-normalize": "^3.0.0", + "nlcst-search": "^3.0.0", + "nlcst-to-string": "^3.0.0", + "pluralize": "^8.0.0", + "quotation": "^2.0.0", + "unified": "^10.0.0", + "unist-util-find-after": "^4.0.0", + "unist-util-position": "^4.0.0" + } + }, + "retext-repeated-words": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/retext-repeated-words/-/retext-repeated-words-4.2.0.tgz", + "integrity": "sha512-Tle40/5Xy6KxI94s4XRqGXcj6aWUeCoQZUGQto8OjZP98t4tKVDRVG3QGodF633hVOEiN1vYqj0Zegqoe8XOaw==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "retext-sentence-spacing": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/retext-sentence-spacing/-/retext-sentence-spacing-5.2.0.tgz", + "integrity": "sha512-/68k/mp/MY1sfRAr1A6or2rfhR7xFOfydDADAESTAETuES4LIATYEIPqKz0FuSuFZLBS9MB2IpbUPDfUES/OiA==", + "dev": true, + "requires": { + "@types/nlcst": "^1.0.0", + "@types/unist": "^2.0.0", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^4.0.0" + } + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -20226,6 +26517,15 @@ "queue-microtask": "^1.2.2" } }, + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "requires": { + "mri": "^1.1.0" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -20739,93 +27039,290 @@ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "2.1.2" + } + }, + "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" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "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 + } + } + }, + "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==", + "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 + } + } + }, + "string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + }, + "dependencies": { + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^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" + } + }, + "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 + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "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" + } + }, + "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.padend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", + "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "dependencies": { + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, - "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==", + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "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": { - "graceful-fs": "^4.1.6" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "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 - } - } - }, - "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==", - "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==", + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "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==", + "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" + } + }, + "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.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "dependencies": { + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, "es-abstract": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", @@ -20863,656 +27360,917 @@ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "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 + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "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" + } + }, + "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 + } + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "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-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==", + "dev": true + }, + "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 + }, + "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" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "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" } - }, - "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 - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + } + } + }, + "terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "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 }, - "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==", + "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": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } - }, - "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.padend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", - "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "terser-webpack-plugin": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz", + "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" }, "dependencies": { - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "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": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "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 + }, + "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": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.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==", + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } }, - "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 - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "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==", + "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": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "randombytes": "^2.1.0" } }, - "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 + "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" + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } } } }, - "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "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 + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "tiny-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.0.0.tgz", + "integrity": "sha512-+u6VomQO7MbI7CQe5q1IwNePpbVKG/HVdUQBmaEpSCdP/QmeyjhrS6WKFsNetXlvf9LWu/f5woRqjMdxBMe/0w==" + }, + "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-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "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==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.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=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^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" - } - }, - "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 - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "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==", + "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": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "kind-of": "^3.0.2" } - }, - "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 } } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "to-vfile": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.3.tgz", + "integrity": "sha512-QO0A9aE6Z/YkmQadJ0syxpmNXtcQiu0qAtCKYKD5cS3EfgfFTAXfgLX6AOaBrSfWSek5nfsMf3gBZ9KGVFcLuw==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "is-buffer": "^2.0.0", + "vfile": "^5.1.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + } } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "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 }, - "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==", + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, - "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==", + "trough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", + "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", "dev": true }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { - "minimist": "^1.1.0" + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "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" + } + } } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "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, "requires": { - "has-flag": "^3.0.0" + "prelude-ls": "^1.2.1" } }, - "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==", + "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 }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "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 }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "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": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" } }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "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 + }, + "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.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "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" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" }, "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" - } + "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 } } }, - "terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "unherit": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-3.0.1.tgz", + "integrity": "sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==", + "dev": true + }, + "unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.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==", + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "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" - } + "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 } } }, - "terser-webpack-plugin": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz", - "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==", + "unified-args": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-10.0.0.tgz", + "integrity": "sha512-PqsqxwkXpGSLiMkbjNnKU33Ffm6gso6rAvz1TlBGzMBx3gpx7ewIhViBX8HEWmy0v7pebA5PM6RkRWWaYmtfYw==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "@types/text-table": "^0.2.0", + "camelcase": "^7.0.0", + "chalk": "^5.0.0", + "chokidar": "^3.0.0", + "fault": "^2.0.0", + "json5": "^2.0.0", + "minimist": "^1.0.0", + "text-table": "^0.2.0", + "unified-engine": "^10.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==", + "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, "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" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "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": {} + "requires": { + "fill-range": "^7.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==", + "camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", "dev": true }, - "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==", + "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, "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.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" } }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "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": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "to-regex-range": "^5.0.1" } }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "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, "requires": { - "randombytes": "^2.1.0" + "is-glob": "^4.0.1" } }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "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": { - "has-flag": "^4.0.0" + "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": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "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==", + "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 + }, + "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==", + "dev": 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, + "requires": { + "is-number": "^7.0.0" } } } }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "unified-engine": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-10.1.0.tgz", + "integrity": "sha512-5+JDIs4hqKfHnJcVCxTid1yBoI/++FfF/1PFdSMpaftZZZY+qg2JFruRbf7PaIwa9KgLotXQV3gSjtY0IdcFGQ==", + "dev": true, + "requires": { + "@types/concat-stream": "^2.0.0", + "@types/debug": "^4.0.0", + "@types/is-empty": "^1.0.0", + "@types/node": "^18.0.0", + "@types/unist": "^2.0.0", + "concat-stream": "^2.0.0", + "debug": "^4.0.0", + "fault": "^2.0.0", + "glob": "^8.0.0", + "ignore": "^5.0.0", + "is-buffer": "^2.0.0", + "is-empty": "^1.0.0", + "is-plain-obj": "^4.0.0", + "load-plugin": "^5.0.0", + "parse-json": "^6.0.0", + "to-vfile": "^7.0.0", + "trough": "^2.0.0", + "unist-util-inspect": "^7.0.0", + "vfile-message": "^3.0.0", + "vfile-reporter": "^7.0.0", + "vfile-statistics": "^2.0.0", + "yaml": "^2.0.0" }, "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "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" + } + }, "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": 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 + }, + "lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true + }, + "minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.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 + }, + "parse-json": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-6.0.2.tgz", + "integrity": "sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA==", "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" + "@babel/code-frame": "^7.16.0", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^2.3.1", + "lines-and-columns": "^2.0.2" } } } }, - "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 - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "tiny-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.0.0.tgz", - "integrity": "sha512-+u6VomQO7MbI7CQe5q1IwNePpbVKG/HVdUQBmaEpSCdP/QmeyjhrS6WKFsNetXlvf9LWu/f5woRqjMdxBMe/0w==" - }, - "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-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "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==", + "unified-lint-rule": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.1.tgz", + "integrity": "sha512-vsLHyLZFstqtGse2gvrGwasOmH8M2y+r2kQMoDSWzSqUkQx2MjHjvZuGSv5FUaiv4RQO1bHRajy7lSGp7XWq5A==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.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=", + "unified-message-control": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz", + "integrity": "sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^3.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "vfile-message": "^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=", + "unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + } + }, + "unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" } } } }, - "toidentifier": { + "union-value": { "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 - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "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" - } - } + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "unist-util-find-after": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.0.tgz", + "integrity": "sha512-gfpsxKQde7atVF30n5Gff2fQhAc4/HTOV4CvkXpTg9wRfQhZWdXitpyXHWB6YcYgnsxLx+4gGHeVjCTAAp9sjw==", "dev": true, "requires": { - "prelude-ls": "^1.2.1" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" } }, - "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==", + "unist-util-generated": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", + "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==", "dev": true }, - "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==", + "unist-util-inspect": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-7.0.1.tgz", + "integrity": "sha512-gEPeSrsYXus8012VJ00p9uZC8D0iogtLLiHlBgvS61hU22KNKduQhMKezJm83viHlLf3TYS2y9SDEFglWPDMKw==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "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==", + "unist-util-modify-children": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-2.0.0.tgz", + "integrity": "sha512-HGrj7JQo9DwZt8XFsX8UD4gGqOsIlCih9opG6Y+N11XqkBGKzHo8cvDi+MfQQgiZ7zXRUiQREYHhjOBHERTMdg==", "dev": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "array-iterate": "^1.0.0" } }, - "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 + "unist-util-position": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", + "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0" + } }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "unist-util-stringify-position": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", + "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "dependencies": { - "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 - } + "@types/unist": "^2.0.0" } }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "unist-util-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", "dev": true, "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" } }, - "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==", + "unist-util-visit-children": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-1.1.4.tgz", + "integrity": "sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ==", + "dev": true + }, + "unist-util-visit-parents": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", + "integrity": "sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" } }, "universalify": { @@ -21616,6 +28374,18 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true }, + "uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dev": true, + "requires": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + } + }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -21638,12 +28408,124 @@ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, + "vfile": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.6.tgz", + "integrity": "sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + } + } + }, + "vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + } + }, + "vfile-message": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.3.tgz", + "integrity": "sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + } + }, + "vfile-reporter": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.4.tgz", + "integrity": "sha512-4cWalUnLrEnbeUQ+hARG5YZtaHieVK3Jp4iG5HslttkVl+MHunSGNAIrODOTLbtjWsNZJRMCkL66AhvZAYuJ9A==", + "dev": true, + "requires": { + "@types/supports-color": "^8.0.0", + "string-width": "^5.0.0", + "supports-color": "^9.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-sort": "^3.0.0", + "vfile-statistics": "^2.0.0" + }, + "dependencies": { + "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 + }, + "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": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "supports-color": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.3.1.tgz", + "integrity": "sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q==", + "dev": true + } + } + }, + "vfile-sort": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.0.tgz", + "integrity": "sha512-fJNctnuMi3l4ikTVcKpxTbzHeCgvDhnI44amA3NVDvA6rTC6oKCFpCVyT5n2fFMr3ebfr+WVQZedOCd73rzSxg==", + "dev": true, + "requires": { + "vfile-message": "^3.0.0" + } + }, + "vfile-statistics": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.0.tgz", + "integrity": "sha512-foOWtcnJhKN9M2+20AOTlWi2dxNfAoeNIoxD5GXcO182UJyId4QrXa41fWrgcfV3FWTjdEDy3I4cpLVcQscIMA==", + "dev": true, + "requires": { + "vfile-message": "^3.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": "1.0.0", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", + "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", + "dev": true + }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -21868,6 +28750,18 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", + "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "dev": true + }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -21916,6 +28810,12 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "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 6acabd83ac..a57814a51e 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,8 @@ "scripts": { "all": "run-s lint test 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", @@ -88,6 +90,8 @@ "mocha-test-container-support": "0.2.0", "npm-run-all": "^4.1.2", "puppeteer": "^19.4.1", + "remark-cli": "^11.0.0", + "remark-preset-bpmn-io": "^0.2.1", "rollup": "^2.79.1", "rollup-plugin-license": "^2.9.1", "sinon": "^15.0.0", @@ -105,5 +109,14 @@ "min-dom": "^4.0.3", "object-refs": "^0.3.0", "tiny-svg": "^3.0.0" + }, + "remarkConfig": { + "plugins": [ + "preset-bpmn-io", + [ + "lint-no-html", + false + ] + ] } } From 18a045790d3359da11f1d7a03796ed17c6e3baf2 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 9 Jan 2023 11:50:47 +0100 Subject: [PATCH 239/989] style: re-format markdown --- CHANGELOG.md | 1 - README.md | 8 -------- docs/project/SETUP.md | 15 +++++---------- 3 files changed, 5 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6473213e4e..d451421e5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,7 +47,6 @@ _Re-release of `v11.0.2`._ * New popup menu UI introduced with `diagram-js@11`. See [`diagram-js` breaking changes and migration guide](https://github.com/bpmn-io/diagram-js/blob/develop/CHANGELOG.md#breaking-changes). * Keyboard-related features no longer use `KeyboardEvent#keyCode`. Use a polyfill (e.g. [keyboardevent-key-polyfill](https://www.npmjs.com/package/keyboardevent-key-polyfill)) if you need to support old browsers. - ## 10.3.0 * `FEAT`: add BPMN specific space tool ([#1344](https://github.com/bpmn-io/bpmn-js/pull/1344)) diff --git a/README.md b/README.md index 1ee6a3763c..3862060160 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,6 @@ View and edit BPMN 2.0 diagrams in the browser. [![bpmn-js screencast](./resources/screencast.gif "bpmn-js in action")](http://demo.bpmn.io/s/start) - ## Installation Use the library [pre-packaged](https://github.com/bpmn-io/bpmn-js-examples/tree/master/pre-packaged) @@ -36,7 +35,6 @@ try { Checkout our [examples](https://github.com/bpmn-io/bpmn-js-examples) for many more supported usage scenarios. - ### Dynamic Attach/Detach You may attach or detach the viewer dynamically to any element on the page, too: @@ -51,7 +49,6 @@ viewer.attachTo('#container'); viewer.detach(); ``` - ## Resources * [Demo](http://demo.bpmn.io) @@ -60,7 +57,6 @@ viewer.detach(); * [Forum](https://forum.bpmn.io) * [Changelog](./CHANGELOG.md) - ## Build and Run Prepare the project by installing all dependencies: @@ -85,7 +81,6 @@ npm run dev You may need to perform [additional project setup](./docs/project/SETUP.md) when building the latest development snapshot. - ## Related bpmn-js builds on top of a few powerful tools: @@ -93,18 +88,15 @@ bpmn-js builds on top of a few powerful tools: * [bpmn-moddle](https://github.com/bpmn-io/bpmn-moddle): Read / write support for BPMN 2.0 XML in the browsers * [diagram-js](https://github.com/bpmn-io/diagram-js): Diagram rendering and editing toolkit - ## Contributing Please checkout our [contributing guidelines](./.github/CONTRIBUTING.md) if you plan to file an issue or pull request. - ## Code of Conduct By participating to this project, please uphold to our [Code of Conduct](https://github.com/bpmn-io/.github/blob/master/.github/CODE_OF_CONDUCT.md). - ## License Use under the terms of the [bpmn.io license](http://bpmn.io/license). diff --git a/docs/project/SETUP.md b/docs/project/SETUP.md index a4e02dd932..30beee850e 100644 --- a/docs/project/SETUP.md +++ b/docs/project/SETUP.md @@ -2,16 +2,13 @@ This document describes the necessary steps to setup a `bpmn-js` development environment. - ## TLDR; -On Linux, OS X or Windows? [git](http://git-scm.com/), [NodeJS](nodejs.org) and [npm](https://www.npmjs.org/doc/cli/npm.html) ready? Check out the [setup script section](https://github.com/bpmn-io/bpmn-js/blob/master/docs/project/SETUP.md#setup-via-script) below. - +On Linux, OS X or Windows? [git](http://git-scm.com), [NodeJS](https://nodejs.org) and [npm](https://www.npmjs.org/doc/cli/npm.html) ready? Check out the [setup script section](#setup-via-script) below. ## Manual Steps -Make sure you have [git](http://git-scm.com/), [NodeJS](nodejs.org) and [npm](https://www.npmjs.org/doc/cli/npm.html) installed before you continue. - +Make sure you have [git](http://git-scm.com), [NodeJS](https://nodejs.org) and [npm](https://www.npmjs.org/doc/cli/npm.html) installed before you continue. ### Get Project + Dependencies @@ -23,7 +20,7 @@ The following projects from the [bpmn-io](https://github.com/bpmn-io) project on and clone them into a common directory via -``` +```sh git clone git@github.com:bpmn-io/bpmn-js.git git clone git@github.com:bpmn-io/diagram-js.git git clone git@github.com:bpmn-io/bpmn-moddle.git @@ -33,7 +30,7 @@ git clone git@github.com:bpmn-io/bpmn-moddle.git [Link dependent projects](https://docs.npmjs.com/cli/link) between each other to pick up changes immediately. -``` +```plain . ├─bpmn-js │ └─node_modules @@ -55,12 +52,10 @@ Use `mklink /d ` [(docs)](http://technet.microsoft.com/en-us/libr Execute `npm install` on each of the projects to grab their dependencies. - ### Verify Things are O.K. Execute `npm run all` on each project. Things should be fine. - ### Setup via Script -The whole setup can be automated through setup scripts for [Linux/OS X](https://github.com/bpmn-io/bpmn-js/blob/master/docs/project/setup.sh) and [Windows](https://github.com/bpmn-io/bpmn-js/blob/master/docs/project/setup.bat). \ No newline at end of file +The whole setup can be automated through setup scripts for [Linux/OS X](https://github.com/bpmn-io/bpmn-js/blob/master/docs/project/setup.sh) and [Windows](https://github.com/bpmn-io/bpmn-js/blob/master/docs/project/setup.bat). From eb4b54f7ffdb55e340aac291c33a5f4d66e246b3 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 12:42:42 +0100 Subject: [PATCH 240/989] chore(draw): drop 2015 marker workaround --- lib/draw/BpmnRenderer.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index 8dee8751ea..a9d6d04a7d 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -97,12 +97,6 @@ export default function BpmnRenderer( var scale = options.scale || 1; - // fix for safari / chrome / firefox bug not correctly - // resetting stroke dash array - if (attrs.strokeDasharray === 'none') { - attrs.strokeDasharray = [ 10000, 1 ]; - } - var marker = svgCreate('marker'); svgAttr(options.element, attrs); From fdbf677ecff342267a9f08dd241feb27cdbb72d8 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 19:46:59 +0100 Subject: [PATCH 241/989] feat(draw): join paths `round` per default This leads to a slightly less harsh perception of drawn elements. --- lib/draw/BpmnRenderer.js | 261 +++++++++++++++++++-------------------- 1 file changed, 129 insertions(+), 132 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index a9d6d04a7d..24d013ebb3 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -83,27 +83,34 @@ export default function BpmnRenderer( var markers = {}; - var computeStyle = styles.computeStyle; - - function addMarker(id, options) { - var attrs = assign({ - fill: black, - strokeWidth: 1, + function shapeStyle(attrs) { + return styles.computeStyle(attrs, { strokeLinecap: 'round', - strokeDasharray: 'none' - }, options.attrs); - - var ref = options.ref || { x: 0, y: 0 }; - - var scale = options.scale || 1; - - var marker = svgCreate('marker'); - - svgAttr(options.element, attrs); + strokeLinejoin: 'round', + stroke: black, + strokeWidth: 2, + fill: 'white' + }); + } - svgAppend(marker, options.element); + function lineStyle(attrs) { + return styles.computeStyle(attrs, [ 'no-fill' ], { + strokeLinecap: 'round', + strokeLinejoin: 'round', + stroke: black, + strokeWidth: 2 + }); + } - svgAttr(marker, { + function addMarker(id, options) { + var { + ref = { x: 0, y: 0 }, + scale = 1, + element, + attrs + } = options; + + var marker = svgCreate('marker', { id: id, viewBox: '0 0 20 20', refX: ref.x, @@ -113,6 +120,10 @@ export default function BpmnRenderer( orient: 'auto' }); + svgAttr(element, attrs); + + svgAppend(marker, element); + var defs = domQuery('defs', canvas._svg); if (!defs) { @@ -152,98 +163,108 @@ export default function BpmnRenderer( element: sequenceflowEnd, ref: { x: 11, y: 10 }, scale: 0.5, - attrs: { + attrs: shapeStyle({ fill: stroke, - stroke: stroke - } + stroke: stroke, + strokeWidth: 1 + }) }); } if (type === 'messageflow-start') { - var messageflowStart = svgCreate('circle'); - svgAttr(messageflowStart, { cx: 6, cy: 6, r: 3.5 }); + var messageflowStart = svgCreate('circle', { + cx: 6, + cy: 6, + r: 3.5 + }); addMarker(id, { element: messageflowStart, - attrs: { + attrs: shapeStyle({ fill: fill, - stroke: stroke - }, + stroke: stroke, + strokeWidth: 1 + }), ref: { x: 6, y: 6 } }); } if (type === 'messageflow-end') { - var messageflowEnd = svgCreate('path'); - svgAttr(messageflowEnd, { d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' }); + var messageflowEnd = svgCreate('path', { + d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' + }); addMarker(id, { element: messageflowEnd, - attrs: { + attrs: shapeStyle({ fill: fill, stroke: stroke, - strokeLinecap: 'butt' - }, + strokeWidth: 1 + }), ref: { x: 8.5, y: 5 } }); } if (type === 'association-start') { - var associationStart = svgCreate('path'); - svgAttr(associationStart, { d: 'M 11 5 L 1 10 L 11 15' }); + var associationStart = svgCreate('path', { + d: 'M 11 5 L 1 10 L 11 15' + }); addMarker(id, { element: associationStart, - attrs: { + attrs: lineStyle({ fill: 'none', stroke: stroke, strokeWidth: 1.5 - }, + }), ref: { x: 1, y: 10 }, scale: 0.5 }); } if (type === 'association-end') { - var associationEnd = svgCreate('path'); - svgAttr(associationEnd, { d: 'M 1 5 L 11 10 L 1 15' }); + var associationEnd = svgCreate('path', { + d: 'M 1 5 L 11 10 L 1 15' + }); addMarker(id, { element: associationEnd, - attrs: { + attrs: lineStyle({ fill: 'none', stroke: stroke, strokeWidth: 1.5 - }, + }), ref: { x: 12, y: 10 }, scale: 0.5 }); } if (type === 'conditional-flow-marker') { - var conditionalflowMarker = svgCreate('path'); - svgAttr(conditionalflowMarker, { d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' }); + var conditionalFlowMarker = svgCreate('path', { + d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' + }); addMarker(id, { - element: conditionalflowMarker, - attrs: { + element: conditionalFlowMarker, + attrs: shapeStyle({ fill: fill, stroke: stroke - }, + }), ref: { x: -1, y: 10 }, scale: 0.5 }); } if (type === 'conditional-default-flow-marker') { - var conditionaldefaultflowMarker = svgCreate('path'); - svgAttr(conditionaldefaultflowMarker, { d: 'M 6 4 L 10 16' }); + var defaultFlowMarker = svgCreate('path', { + d: 'M 6 4 L 10 16' + }); addMarker(id, { - element: conditionaldefaultflowMarker, - attrs: { + element: defaultFlowMarker, + attrs: shapeStyle({ stroke: stroke - }, + }), ref: { x: 0, y: 10 }, scale: 0.5 }); @@ -259,11 +280,7 @@ export default function BpmnRenderer( offset = offset || 0; - attrs = computeStyle(attrs, { - stroke: black, - strokeWidth: 2, - fill: 'white' - }); + attrs = shapeStyle(attrs); if (attrs.fill === 'none') { delete attrs.fillOpacity; @@ -272,13 +289,12 @@ export default function BpmnRenderer( var cx = width / 2, cy = height / 2; - var circle = svgCreate('circle'); - svgAttr(circle, { + var circle = svgCreate('circle', { cx: cx, cy: cy, - r: Math.round((width + height) / 4 - offset) + r: Math.round((width + height) / 4 - offset), + ...attrs }); - svgAttr(circle, attrs); svgAppend(parentGfx, circle); @@ -294,22 +310,17 @@ export default function BpmnRenderer( offset = offset || 0; - attrs = computeStyle(attrs, { - stroke: black, - strokeWidth: 2, - fill: 'white' - }); + attrs = shapeStyle(attrs); - var rect = svgCreate('rect'); - svgAttr(rect, { + var rect = svgCreate('rect', { x: offset, y: offset, width: width - offset * 2, height: height - offset * 2, rx: r, - ry: r + ry: r, + ...attrs }); - svgAttr(rect, attrs); svgAppend(parentGfx, rect); @@ -321,35 +332,39 @@ export default function BpmnRenderer( var x_2 = width / 2; var y_2 = height / 2; - var points = [ { x: x_2, y: 0 }, { x: width, y: y_2 }, { x: x_2, y: height }, { x: 0, y: y_2 } ]; + var points = [ + { x: x_2, y: 0 }, + { x: width, y: y_2 }, + { x: x_2, y: height }, + { x: 0, y: y_2 } + ]; var pointsString = points.map(function(point) { return point.x + ',' + point.y; }).join(' '); - attrs = computeStyle(attrs, { - stroke: black, - strokeWidth: 2, - fill: 'white' - }); + attrs = shapeStyle(attrs); - var polygon = svgCreate('polygon'); - svgAttr(polygon, { + var polygon = svgCreate('polygon', { + ...attrs, points: pointsString }); - svgAttr(polygon, attrs); svgAppend(parentGfx, polygon); return polygon; } + /** + * @param {SVGElement} parentGfx + * @param {Point[]} waypoints + * @param {any} attrs + * @param {number} [radius] + * + * @return {SVGElement} + */ function drawLine(parentGfx, waypoints, attrs) { - attrs = computeStyle(attrs, [ 'no-fill' ], { - stroke: black, - strokeWidth: 2, - fill: 'none' - }); + attrs = lineStyle(attrs); var line = createLine(waypoints, attrs); @@ -360,14 +375,12 @@ export default function BpmnRenderer( function drawPath(parentGfx, d, attrs) { - attrs = computeStyle(attrs, [ 'no-fill' ], { - strokeWidth: 2, - stroke: black - }); + attrs = lineStyle(attrs); - var path = svgCreate('path'); - svgAttr(path, { d: d }); - svgAttr(path, attrs); + var path = svgCreate('path', { + ...attrs, + d + }); svgAppend(parentGfx, path); @@ -544,7 +557,6 @@ export default function BpmnRenderer( if (!semantic.isInterrupting) { attrs = { strokeDasharray: '6', - strokeLinecap: 'round', fill: getFillColor(element, defaultFillColor), stroke: getStrokeColor(element, defaultStrokeColor) }; @@ -599,7 +611,6 @@ export default function BpmnRenderer( drawPath(parentGfx, pathData, { strokeWidth: 2, - strokeLinecap: 'square', stroke: getStrokeColor(element, defaultStrokeColor) }); @@ -621,7 +632,6 @@ export default function BpmnRenderer( drawPath(parentGfx, linePathData, { strokeWidth: 1, - strokeLinecap: 'square', transform: 'rotate(' + (i * 30) + ',' + height + ',' + width + ')', stroke: getStrokeColor(element, defaultStrokeColor) }); @@ -1089,10 +1099,11 @@ export default function BpmnRenderer( return task; }, 'bpmn:SubProcess': function(parentGfx, element, attrs) { - attrs = assign({ + attrs = { fill: getFillColor(element, defaultFillColor), - stroke: getStrokeColor(element, defaultStrokeColor) - }, attrs); + stroke: getStrokeColor(element, defaultStrokeColor), + ...attrs + }; var rect = renderer('bpmn:Activity')(parentGfx, element, attrs); @@ -1175,11 +1186,12 @@ export default function BpmnRenderer( return lane; }, 'bpmn:Lane': function(parentGfx, element, attrs) { - var rect = drawRect(parentGfx, element.width, element.height, 0, assign({ + var rect = drawRect(parentGfx, element.width, element.height, 0, { fill: getFillColor(element, defaultFillColor), fillOpacity: HIGH_FILL_OPACITY, - stroke: getStrokeColor(element, defaultStrokeColor) - }, attrs)); + stroke: getStrokeColor(element, defaultStrokeColor), + ...attrs + }); var semantic = getSemantic(element); @@ -1298,13 +1310,11 @@ export default function BpmnRenderer( } }); - var attrs = { + /* event path */ drawPath(parentGfx, pathData, { strokeWidth: 2, fill: getFillColor(element, 'none'), stroke: getStrokeColor(element, defaultStrokeColor) - }; - - /* event path */ drawPath(parentGfx, pathData, attrs); + }); } if (type === 'Parallel') { @@ -1320,16 +1330,14 @@ export default function BpmnRenderer( } }); - var parallelPath = drawPath(parentGfx, pathData); - svgAttr(parallelPath, { + drawPath(parentGfx, pathData, { strokeWidth: 1, fill: 'none' }); } else if (type === 'Exclusive') { if (!instantiate) { - var innerCircle = drawCircle(parentGfx, element.width, element.height, element.height * 0.26); - svgAttr(innerCircle, { + drawCircle(parentGfx, element.width, element.height, element.height * 0.26, { strokeWidth: 1, fill: 'none', stroke: getStrokeColor(element, defaultStrokeColor) @@ -1343,13 +1351,11 @@ export default function BpmnRenderer( return diamond; }, 'bpmn:Gateway': function(parentGfx, element) { - var attrs = { + return drawDiamond(parentGfx, element.width, element.height, { fill: getFillColor(element, defaultFillColor), fillOpacity: DEFAULT_FILL_OPACITY, stroke: getStrokeColor(element, defaultStrokeColor) - }; - - return drawDiamond(parentGfx, element.width, element.height, attrs); + }); }, 'bpmn:SequenceFlow': function(parentGfx, element) { var pathData = createPathFromConnection(element); @@ -1358,7 +1364,6 @@ export default function BpmnRenderer( stroke = getStrokeColor(element, defaultStrokeColor); var attrs = { - strokeLinejoin: 'round', markerEnd: marker('sequenceflow-end', fill, stroke), stroke: getStrokeColor(element, defaultStrokeColor) }; @@ -1397,12 +1402,11 @@ export default function BpmnRenderer( var fill = getFillColor(element, defaultFillColor), stroke = getStrokeColor(element, defaultStrokeColor); - attrs = assign({ + attrs = { strokeDasharray: '0.5, 5', - strokeLinecap: 'round', - strokeLinejoin: 'round', - stroke: getStrokeColor(element, defaultStrokeColor) - }, attrs || {}); + stroke: getStrokeColor(element, defaultStrokeColor), + ...attrs + }; if (semantic.associationDirection === 'One' || semantic.associationDirection === 'Both') { @@ -1444,9 +1448,7 @@ export default function BpmnRenderer( var attrs = { markerEnd: marker('messageflow-end', fill, stroke), markerStart: marker('messageflow-start', fill, stroke), - strokeDasharray: '10, 12', - strokeLinecap: 'round', - strokeLinejoin: 'round', + strokeDasharray: '10, 11', strokeWidth: '1.5px', stroke: getStrokeColor(element, defaultStrokeColor) }; @@ -1581,18 +1583,19 @@ export default function BpmnRenderer( if (!cancel) { attrs.strokeDasharray = '6'; - attrs.strokeLinecap = 'round'; } // apply fillOpacity - var outerAttrs = assign({}, attrs, { + var outerAttrs = { + ...attrs, fillOpacity: 1 - }); + }; // apply no-fill - var innerAttrs = assign({}, attrs, { + var innerAttrs = { + ...attrs, fill: 'none' - }); + }; var outer = renderer('bpmn:Event')(parentGfx, element, outerAttrs); @@ -1603,27 +1606,22 @@ export default function BpmnRenderer( return outer; }, 'bpmn:Group': function(parentGfx, element) { - - var group = drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, { + return drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, { stroke: getStrokeColor(element, defaultStrokeColor), strokeWidth: 1, strokeDasharray: '8,3,1,3', fill: 'none', pointerEvents: 'none' }); - - return group; }, 'label': function(parentGfx, element) { return renderExternalLabel(parentGfx, element); }, 'bpmn:TextAnnotation': function(parentGfx, element) { - var style = { + var textElement = drawRect(parentGfx, element.width, element.height, 0, 0, { 'fill': 'none', 'stroke': 'none' - }; - - var textElement = drawRect(parentGfx, element.width, element.height, 0, 0, style); + }); var textPathData = pathMap.getScaledPath('TEXT_ANNOTATION', { xScaleFactor: 1, @@ -1765,7 +1763,6 @@ export default function BpmnRenderer( strokeWidth: 1, fill: getFillColor(element, defaultFillColor), stroke: getStrokeColor(element, defaultStrokeColor), - strokeLinecap: 'round', strokeMiterlimit: 0.5 }); }, From 99a2d4ae79b5387a05a97dffdb0616944529ce7c Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 12:50:54 +0100 Subject: [PATCH 242/989] chore(draw): simplify marker generation --- lib/draw/BpmnRenderer.js | 88 ++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index 24d013ebb3..1d4686edc6 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -106,8 +106,7 @@ export default function BpmnRenderer( var { ref = { x: 0, y: 0 }, scale = 1, - element, - attrs + element } = options; var marker = svgCreate('marker', { @@ -120,8 +119,6 @@ export default function BpmnRenderer( orient: 'auto' }); - svgAttr(element, attrs); - svgAppend(marker, element); var defs = domQuery('defs', canvas._svg); @@ -156,67 +153,68 @@ export default function BpmnRenderer( function createMarker(id, type, fill, stroke) { if (type === 'sequenceflow-end') { - var sequenceflowEnd = svgCreate('path'); - svgAttr(sequenceflowEnd, { d: 'M 1 5 L 11 10 L 1 15 Z' }); - - addMarker(id, { - element: sequenceflowEnd, - ref: { x: 11, y: 10 }, - scale: 0.5, - attrs: shapeStyle({ + var sequenceflowEnd = svgCreate('path', { + d: 'M 1 5 L 11 10 L 1 15 Z', + ...shapeStyle({ fill: stroke, stroke: stroke, strokeWidth: 1 }) }); + + addMarker(id, { + element: sequenceflowEnd, + ref: { x: 11, y: 10 }, + scale: 0.5 + }); } if (type === 'messageflow-start') { var messageflowStart = svgCreate('circle', { cx: 6, cy: 6, - r: 3.5 + r: 3.5, + ...shapeStyle({ + fill: fill, + stroke: stroke, + strokeWidth: 1 + }) }); addMarker(id, { element: messageflowStart, - attrs: shapeStyle({ - fill: fill, - stroke: stroke, - strokeWidth: 1 - }), ref: { x: 6, y: 6 } }); } if (type === 'messageflow-end') { var messageflowEnd = svgCreate('path', { - d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' + d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z', + ...shapeStyle({ + fill: fill, + stroke: stroke, + strokeWidth: 1 + }) }); addMarker(id, { element: messageflowEnd, - attrs: shapeStyle({ - fill: fill, - stroke: stroke, - strokeWidth: 1 - }), ref: { x: 8.5, y: 5 } }); } if (type === 'association-start') { var associationStart = svgCreate('path', { - d: 'M 11 5 L 1 10 L 11 15' + d: 'M 11 5 L 1 10 L 11 15', + ...lineStyle({ + fill: 'none', + stroke: stroke, + strokeWidth: 1.5 + }) }); addMarker(id, { element: associationStart, - attrs: lineStyle({ - fill: 'none', - stroke: stroke, - strokeWidth: 1.5 - }), ref: { x: 1, y: 10 }, scale: 0.5 }); @@ -224,16 +222,16 @@ export default function BpmnRenderer( if (type === 'association-end') { var associationEnd = svgCreate('path', { - d: 'M 1 5 L 11 10 L 1 15' + d: 'M 1 5 L 11 10 L 1 15', + ...lineStyle({ + fill: 'none', + stroke: stroke, + strokeWidth: 1.5 + }) }); addMarker(id, { element: associationEnd, - attrs: lineStyle({ - fill: 'none', - stroke: stroke, - strokeWidth: 1.5 - }), ref: { x: 12, y: 10 }, scale: 0.5 }); @@ -241,15 +239,15 @@ export default function BpmnRenderer( if (type === 'conditional-flow-marker') { var conditionalFlowMarker = svgCreate('path', { - d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' + d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z', + ...shapeStyle({ + fill: fill, + stroke: stroke + }) }); addMarker(id, { element: conditionalFlowMarker, - attrs: shapeStyle({ - fill: fill, - stroke: stroke - }), ref: { x: -1, y: 10 }, scale: 0.5 }); @@ -257,14 +255,14 @@ export default function BpmnRenderer( if (type === 'conditional-default-flow-marker') { var defaultFlowMarker = svgCreate('path', { - d: 'M 6 4 L 10 16' + d: 'M 6 4 L 10 16', + ...shapeStyle({ + stroke: stroke + }) }); addMarker(id, { element: defaultFlowMarker, - attrs: shapeStyle({ - stroke: stroke - }), ref: { x: 0, y: 10 }, scale: 0.5 }); From 568b7d5f59924ded38c38fd94979fd029b4a4370 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 13:11:00 +0100 Subject: [PATCH 243/989] chore: draw lines using dedicated utility --- lib/draw/BpmnRenderer.js | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index 1d4686edc6..ce776ec5fa 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -371,6 +371,17 @@ export default function BpmnRenderer( return line; } + /** + * @param {SVGElement} parentGfx + * @param {Point[]} waypoints + * @param {any} attrs + * + * @return {SVGElement} + */ + function drawConnectionSegments(parentGfx, waypoints, attrs) { + return drawLine(parentGfx, waypoints, attrs); + } + function drawPath(parentGfx, d, attrs) { attrs = lineStyle(attrs); @@ -525,16 +536,6 @@ export default function BpmnRenderer( transform(textBox, 0, -top, 270); } - function createPathFromConnection(connection) { - var waypoints = connection.waypoints; - - var pathData = 'm ' + waypoints[0].x + ',' + waypoints[0].y; - for (var i = 1; i < waypoints.length; i++) { - pathData += 'L' + waypoints[i].x + ',' + waypoints[i].y + ' '; - } - return pathData; - } - var handlers = this.handlers = { 'bpmn:Event': function(parentGfx, element, attrs) { @@ -1356,17 +1357,13 @@ export default function BpmnRenderer( }); }, 'bpmn:SequenceFlow': function(parentGfx, element) { - var pathData = createPathFromConnection(element); - var fill = getFillColor(element, defaultFillColor), stroke = getStrokeColor(element, defaultStrokeColor); - var attrs = { + var path = drawConnectionSegments(parentGfx, element.waypoints, { markerEnd: marker('sequenceflow-end', fill, stroke), stroke: getStrokeColor(element, defaultStrokeColor) - }; - - var path = drawPath(parentGfx, pathData, attrs); + }); var sequenceFlow = getSemantic(element); @@ -1415,7 +1412,7 @@ export default function BpmnRenderer( attrs.markerStart = marker('association-start', fill, stroke); } - return drawLine(parentGfx, element.waypoints, attrs); + return drawConnectionSegments(parentGfx, element.waypoints, attrs); }, 'bpmn:DataInputAssociation': function(parentGfx, element) { var fill = getFillColor(element, defaultFillColor), @@ -1441,17 +1438,13 @@ export default function BpmnRenderer( var fill = getFillColor(element, defaultFillColor), stroke = getStrokeColor(element, defaultStrokeColor); - var pathData = createPathFromConnection(element); - - var attrs = { + var path = drawConnectionSegments(parentGfx, element.waypoints, { markerEnd: marker('messageflow-end', fill, stroke), markerStart: marker('messageflow-start', fill, stroke), strokeDasharray: '10, 11', strokeWidth: '1.5px', stroke: getStrokeColor(element, defaultStrokeColor) - }; - - var path = drawPath(parentGfx, pathData, attrs); + }); if (semantic.messageRef) { var midPoint = path.getPointAtLength(path.getTotalLength() / 2); From 921aaa9a65511c8aa29ad58b87405b9d6dd19ec3 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 16:17:07 +0100 Subject: [PATCH 244/989] chore(draw): simplify render code --- lib/draw/BpmnRenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index ce776ec5fa..9a8f707008 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -1442,7 +1442,7 @@ export default function BpmnRenderer( markerEnd: marker('messageflow-end', fill, stroke), markerStart: marker('messageflow-start', fill, stroke), strokeDasharray: '10, 11', - strokeWidth: '1.5px', + strokeWidth: 1.5, stroke: getStrokeColor(element, defaultStrokeColor) }); From 496c6f613cdb9537b5e0a24d1ef929fda507a1cb Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 2 Feb 2023 14:00:31 +0100 Subject: [PATCH 245/989] deps: bump to diagram-js@11.8.0 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e2930361c..1a089350ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.7.0", + "diagram-js": "^11.8.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3388,9 +3388,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.7.0.tgz", - "integrity": "sha512-NGXQzrYpcC8dZgUSpIT0KwAlCX1ncfiGJr9h6NnAP9ylx/PjQ1ywiLwWQa7nk7Rx63GtJghs6KNF5/sISpeTmw==", + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.8.0.tgz", + "integrity": "sha512-N1V3GjHeTdsWUPd4rjYun503b31GdDFy8VvaI/91CrnJr+iIAjiRlbH5vyiSHc8bmzKe6ykoiNe8Nm9ZJrg2AQ==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", @@ -19064,9 +19064,9 @@ "dev": true }, "diagram-js": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.7.0.tgz", - "integrity": "sha512-NGXQzrYpcC8dZgUSpIT0KwAlCX1ncfiGJr9h6NnAP9ylx/PjQ1ywiLwWQa7nk7Rx63GtJghs6KNF5/sISpeTmw==", + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.8.0.tgz", + "integrity": "sha512-N1V3GjHeTdsWUPd4rjYun503b31GdDFy8VvaI/91CrnJr+iIAjiRlbH5vyiSHc8bmzKe6ykoiNe8Nm9ZJrg2AQ==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", diff --git a/package.json b/package.json index a57814a51e..8ac5007247 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.7.0", + "diagram-js": "^11.8.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From 48f28549fe4160de8dce03b7a117394b78e318e4 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 12:39:49 +0100 Subject: [PATCH 246/989] feat(draw): improve visual presence of `loop` marker --- lib/draw/BpmnRenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index 9a8f707008..10d171f21c 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -1751,7 +1751,7 @@ export default function BpmnRenderer( }); drawMarker('loop', parentGfx, markerPath, { - strokeWidth: 1, + strokeWidth: 1.5, fill: getFillColor(element, defaultFillColor), stroke: getStrokeColor(element, defaultStrokeColor), strokeMiterlimit: 0.5 From 9bd84212982e5e2b2c7ab5e9bd5dd165e34117e1 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 14:13:58 +0100 Subject: [PATCH 247/989] feat(draw): reduce visual presence of participants and lanes `strokeWidth 2 -> 1.5` --- lib/draw/BpmnRenderer.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index 10d171f21c..def74965f6 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -1145,10 +1145,13 @@ export default function BpmnRenderer( }, 'bpmn:Participant': function(parentGfx, element) { + var strokeWidth = 1.5; + var attrs = { fillOpacity: DEFAULT_FILL_OPACITY, fill: getFillColor(element, defaultFillColor), - stroke: getStrokeColor(element, defaultStrokeColor) + stroke: getStrokeColor(element, defaultStrokeColor), + strokeWidth }; var lane = renderer('bpmn:Lane')(parentGfx, element, attrs); @@ -1160,13 +1163,14 @@ export default function BpmnRenderer( { x: 30, y: 0 }, { x: 30, y: element.height } ], { - stroke: getStrokeColor(element, defaultStrokeColor) + stroke: getStrokeColor(element, defaultStrokeColor), + strokeWidth }); var text = getSemantic(element).name; renderLaneLabel(parentGfx, text, element); } else { - // Collapsed pool draw text inline + // collapsed pool draw text inline var text2 = getSemantic(element).name; renderLabel(parentGfx, text2, { box: element, align: 'center-middle', @@ -1189,6 +1193,7 @@ export default function BpmnRenderer( fill: getFillColor(element, defaultFillColor), fillOpacity: HIGH_FILL_OPACITY, stroke: getStrokeColor(element, defaultStrokeColor), + strokeWidth: 1.5, ...attrs }); From 590bd2e281f472d45eca7f08effa963ddc1e8dbd Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 18:45:00 +0100 Subject: [PATCH 248/989] feat(draw): improve event sub-process look Make it appear closer to the BPMN 2.0 specification. --- lib/draw/BpmnRenderer.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index def74965f6..4de382c8cd 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -1110,7 +1110,8 @@ export default function BpmnRenderer( if (isEventSubProcess(element)) { svgAttr(rect, { - strokeDasharray: '1,2' + strokeDasharray: '0, 5', + strokeWidth: 2.5 }); } From f25e92bca68e122b1d27e3806602818b1c2bb498 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 18:48:20 +0100 Subject: [PATCH 249/989] feat(draw): improve transaction look --- lib/draw/BpmnRenderer.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index 4de382c8cd..107c9efd3c 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -1129,13 +1129,14 @@ export default function BpmnRenderer( return renderer('bpmn:SubProcess')(parentGfx, element); }, 'bpmn:Transaction': function(parentGfx, element) { - var outer = renderer('bpmn:SubProcess')(parentGfx, element); + var outer = renderer('bpmn:SubProcess')(parentGfx, element, { strokeWidth: 1.5 }); var innerAttrs = styles.style([ 'no-fill', 'no-events' ], { - stroke: getStrokeColor(element, defaultStrokeColor) + stroke: getStrokeColor(element, defaultStrokeColor), + strokeWidth: 1.5 }); - /* inner path */ drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS - 2, INNER_OUTER_DIST, innerAttrs); + /* inner path */ drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS - 3, INNER_OUTER_DIST, innerAttrs); return outer; }, From dd7a98d8b30f345161c94a43862e182c03431cb3 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 18:54:27 +0100 Subject: [PATCH 250/989] feat(draw): improve group look --- lib/draw/BpmnRenderer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index 107c9efd3c..b6d1457122 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -1606,8 +1606,8 @@ export default function BpmnRenderer( 'bpmn:Group': function(parentGfx, element) { return drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, { stroke: getStrokeColor(element, defaultStrokeColor), - strokeWidth: 1, - strokeDasharray: '8,3,1,3', + strokeWidth: 1.5, + strokeDasharray: '10,6,0,6', fill: 'none', pointerEvents: 'none' }); From e27feb508df77883c36830e38c87954e45187f07 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 12:52:56 +0100 Subject: [PATCH 251/989] feat(draw): improve association look * improve visual attachment * slightly increase spacing --- lib/draw/BpmnRenderer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index b6d1457122..05fcb7145f 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -232,7 +232,7 @@ export default function BpmnRenderer( addMarker(id, { element: associationEnd, - ref: { x: 12, y: 10 }, + ref: { x: 11, y: 10 }, scale: 0.5 }); } @@ -1405,7 +1405,7 @@ export default function BpmnRenderer( stroke = getStrokeColor(element, defaultStrokeColor); attrs = { - strokeDasharray: '0.5, 5', + strokeDasharray: '0, 5', stroke: getStrokeColor(element, defaultStrokeColor), ...attrs }; From 0112a95540c514668b3634cc2b6f99c8e5ad88d8 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 20:28:36 +0100 Subject: [PATCH 252/989] feat(draw): improve intermediate event look Slightly improves visual presence. --- lib/draw/BpmnRenderer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index 05fcb7145f..fd06df80a6 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -838,14 +838,14 @@ export default function BpmnRenderer( }, 'bpmn:IntermediateEvent': function(parentGfx, element) { var outer = renderer('bpmn:Event')(parentGfx, element, { - strokeWidth: 1, + strokeWidth: 1.5, fill: getFillColor(element, defaultFillColor), stroke: getStrokeColor(element, defaultStrokeColor) }); /* inner */ drawCircle(parentGfx, element.width, element.height, INNER_OUTER_DIST, { - strokeWidth: 1, + strokeWidth: 1.5, fill: getFillColor(element, 'none'), stroke: getStrokeColor(element, defaultStrokeColor) }); @@ -1574,7 +1574,7 @@ export default function BpmnRenderer( cancel = semantic.cancelActivity; var attrs = { - strokeWidth: 1, + strokeWidth: 1.5, fill: getFillColor(element, defaultFillColor), stroke: getStrokeColor(element, defaultStrokeColor) }; From 68b98622fd3d1016e8373a348ad5e58437b2b38e Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 21:26:36 +0100 Subject: [PATCH 253/989] feat(draw): improve embedded label padding Ensures labels are attached reasonably to sub-process and transaction elements. --- lib/draw/BpmnRenderer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index fd06df80a6..1807dc7bed 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -490,7 +490,7 @@ export default function BpmnRenderer( return renderLabel(parentGfx, semantic.name, { box: element, align: align, - padding: 5, + padding: 7, style: { fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor) } @@ -1640,7 +1640,7 @@ export default function BpmnRenderer( renderLabel(parentGfx, text, { box: element, align: 'left-top', - padding: 5, + padding: 7, style: { fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor) } From 5b72c7a69c749531010f43ee7101281962d84002 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 1 Feb 2023 13:46:19 +0100 Subject: [PATCH 254/989] feat(draw): round corners of multi-segment lines --- lib/draw/BpmnRenderer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index 1807dc7bed..dc6c247fb9 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -361,10 +361,10 @@ export default function BpmnRenderer( * * @return {SVGElement} */ - function drawLine(parentGfx, waypoints, attrs) { + function drawLine(parentGfx, waypoints, attrs, radius) { attrs = lineStyle(attrs); - var line = createLine(waypoints, attrs); + var line = createLine(waypoints, attrs, radius); svgAppend(parentGfx, line); @@ -379,7 +379,7 @@ export default function BpmnRenderer( * @return {SVGElement} */ function drawConnectionSegments(parentGfx, waypoints, attrs) { - return drawLine(parentGfx, waypoints, attrs); + return drawLine(parentGfx, waypoints, attrs, 5); } function drawPath(parentGfx, d, attrs) { From 97f4ea4a82ea49413ebb4bbd40f3ea3baea1dfb5 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 2 Feb 2023 22:00:15 +0100 Subject: [PATCH 255/989] fix(draw): prevent event sub-process render artifact --- lib/draw/BpmnRenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index dc6c247fb9..c81eaca9f4 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -1110,7 +1110,7 @@ export default function BpmnRenderer( if (isEventSubProcess(element)) { svgAttr(rect, { - strokeDasharray: '0, 5', + strokeDasharray: '0, 5.5', strokeWidth: 2.5 }); } From 2c726c62951fe3cb61f1e137039e3a4fa7b5fc39 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 2 Feb 2023 22:08:02 +0100 Subject: [PATCH 256/989] fix(create-append-anything): do not allow to append from label --- .../create-append-anything/AppendRules.js | 9 +++++-- .../create-append-anything/AppendRules.bpmn | 25 +++++++++++-------- .../create-append-anything/AppendRulesSpec.js | 14 ++++++++++- 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/lib/features/create-append-anything/AppendRules.js b/lib/features/create-append-anything/AppendRules.js index a3743aeea9..11151dc11a 100644 --- a/lib/features/create-append-anything/AppendRules.js +++ b/lib/features/create-append-anything/AppendRules.js @@ -6,12 +6,13 @@ import inherits from 'inherits-browser'; import { is, + isAny, getBusinessObject } from '../../util/ModelUtil'; import { - isAny -} from '../modeling/util/ModelingUtil'; + isLabel +} from '../../util/LabelUtil'; import RuleProvider from 'diagram-js/lib/features/rules/RuleProvider'; @@ -36,6 +37,10 @@ AppendRules.prototype.init = function() { const businessObject = getBusinessObject(source); + if (isLabel(source)) { + return false; + } + if (isAny(source, [ 'bpmn:EndEvent', 'bpmn:Group', diff --git a/test/spec/features/create-append-anything/AppendRules.bpmn b/test/spec/features/create-append-anything/AppendRules.bpmn index 31d23e2e50..c11f137a04 100644 --- a/test/spec/features/create-append-anything/AppendRules.bpmn +++ b/test/spec/features/create-append-anything/AppendRules.bpmn @@ -6,13 +6,13 @@ - + SequenceFlow SequenceFlow - + @@ -22,23 +22,26 @@ - - - - + + + + - - - - + + + + + + + @@ -48,4 +51,4 @@ - + \ No newline at end of file diff --git a/test/spec/features/create-append-anything/AppendRulesSpec.js b/test/spec/features/create-append-anything/AppendRulesSpec.js index 8c4bd01a9c..cf72c3111c 100644 --- a/test/spec/features/create-append-anything/AppendRulesSpec.js +++ b/test/spec/features/create-append-anything/AppendRulesSpec.js @@ -34,7 +34,6 @@ describe('features/create-append-anything - rules', function() { ]; // when - var results = types.map(function(type) { var element = elementFactory.createShape({ type: type }); return rules.allowed('shape.append', { element }); @@ -47,6 +46,19 @@ describe('features/create-append-anything - rules', function() { })); + it('should not allow for labels', inject(function(elementRegistry, rules) { + + // given + var element = elementRegistry.get('START_EVENT').label; + + // when + var allowed = rules.allowed('shape.append', { element }); + + // then + expect(allowed).to.be.false; + })); + + it('should not allow for event subprocess', inject(function(elementFactory, rules) { // given From 174429818eebb3cb27d51dd9e26805ccd9f5f965 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Fri, 3 Feb 2023 14:55:47 +0100 Subject: [PATCH 257/989] chore(CHANGELOG): update to 11.2.0 --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d451421e5e..c740f931a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.2.0 + +* `FEAT`: append menu available via context pad ([#1802](https://github.com/bpmn-io/bpmn-js/pull/1802), [#1809](https://github.com/bpmn-io/bpmn-js/pull/1809), [#1815](https://github.com/bpmn-io/bpmn-js/pull/1815), [#1818](https://github.com/bpmn-io/bpmn-js/pull/1818), [#1831](https://github.com/bpmn-io/bpmn-js/pull/1831)) +* `FEAT`: create menu available via palette ([#1811](https://github.com/bpmn-io/bpmn-js/pull/1811), [#1809](https://github.com/bpmn-io/bpmn-js/pull/1809), [#1817](https://github.com/bpmn-io/bpmn-js/pull/1817)) +* `FEAT`: simplify connection-multi icon ([#1822](https://github.com/bpmn-io/bpmn-js/pull/1822)) +* `FEAT`: join paths `round` by default ([1827](https://github.com/bpmn-io/bpmn-js/pull/1827)) +* `FEAT`: improved BPMN symbol rendering ([#1830](https://github.com/bpmn-io/bpmn-js/pull/1830)) +* `FEAT`: round connection corners ([#1828](https://github.com/bpmn-io/bpmn-js/pull/1828)) +* `FIX`: missing special attributes in `bpmnElementFactory` ([#1807](https://github.com/bpmn-io/bpmn-js/pull/1807)) +* `FIX`: handle `bpmn:DataObjectReference` without data object in replace menu ([#1823](https://github.com/bpmn-io/bpmn-js/pull/1823)) +* `DEPS`: update to `diagram-js@11.8.0` + ## 11.1.1 * `FIX`: correct popup menu display in fullscreen ([#1795](https://github.com/bpmn-io/bpmn-js/issues/1795)) From be900eaa44143685133adda7432f7e9f39bfc8b1 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Fri, 3 Feb 2023 15:38:34 +0100 Subject: [PATCH 258/989] 11.2.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1a089350ea..08ff3f0d1c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.1.1", + "version": "11.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.1.1", + "version": "11.2.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 8ac5007247..a3b475cb32 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.1.1", + "version": "11.2.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From cc5f779a60d27eb7c5e1a5ddb9f8f0a0284e8601 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 Feb 2023 08:52:48 +0000 Subject: [PATCH 259/989] chore: update dependency file-drops to ^0.5.0 --- package-lock.json | 82 ++++++----------------------------------------- package.json | 2 +- 2 files changed, 10 insertions(+), 74 deletions(-) diff --git a/package-lock.json b/package-lock.json index 08ff3f0d1c..2135da43a4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "eslint-plugin-bpmn-io": "^1.0.0", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", - "file-drops": "^0.4.0", + "file-drops": "^0.5.0", "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", "karma-coverage": "^2.2.0", @@ -4907,31 +4907,12 @@ } }, "node_modules/file-drops": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/file-drops/-/file-drops-0.4.0.tgz", - "integrity": "sha512-dPLRxrQ/sWHyU1DMf72doyyFuqeR/T8hJ97coJHXmdeHvqMTdOMJ/PLsHKjQzDHC8TBQO0rDUinDEXz3WGTnQA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/file-drops/-/file-drops-0.5.0.tgz", + "integrity": "sha512-ZaENKwVySae4RhEGjh1gEE1wMnIIPG6XqtOwHNQYSl7RNwUHoRGVVspe+BrW7cUFseHNIit3Oy9Z/HPIEU5XWA==", "dev": true, "dependencies": { - "min-dom": "^3.1.1" - } - }, - "node_modules/file-drops/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 - }, - "node_modules/file-drops/node_modules/min-dom": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", - "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", - "dev": true, - "dependencies": { - "component-event": "^0.1.4", - "domify": "^1.3.1", - "indexof": "0.0.1", - "matches-selector": "^1.2.0", - "min-dash": "^3.8.1" + "min-dom": "^4.0.3" } }, "node_modules/file-entry-cache": { @@ -6581,12 +6562,6 @@ "node": ">=8" } }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -8027,12 +8002,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/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==", - "dev": true - }, "node_modules/math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", @@ -20226,33 +20195,12 @@ } }, "file-drops": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/file-drops/-/file-drops-0.4.0.tgz", - "integrity": "sha512-dPLRxrQ/sWHyU1DMf72doyyFuqeR/T8hJ97coJHXmdeHvqMTdOMJ/PLsHKjQzDHC8TBQO0rDUinDEXz3WGTnQA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/file-drops/-/file-drops-0.5.0.tgz", + "integrity": "sha512-ZaENKwVySae4RhEGjh1gEE1wMnIIPG6XqtOwHNQYSl7RNwUHoRGVVspe+BrW7cUFseHNIit3Oy9Z/HPIEU5XWA==", "dev": true, "requires": { - "min-dom": "^3.1.1" - }, - "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 - }, - "min-dom": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.2.1.tgz", - "integrity": "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==", - "dev": true, - "requires": { - "component-event": "^0.1.4", - "domify": "^1.3.1", - "indexof": "0.0.1", - "matches-selector": "^1.2.0", - "min-dash": "^3.8.1" - } - } + "min-dom": "^4.0.3" } }, "file-entry-cache": { @@ -21486,12 +21434,6 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -22566,12 +22508,6 @@ "integrity": "sha512-LeCq9FI5u4nppJnt4hklxcchkH9qH9+uFjX17f74a99lLkRXfVE49iL0hCtM5DZolps483viAy5zjvlTz/JNoA==", "dev": true }, - "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==", - "dev": true - }, "math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", diff --git a/package.json b/package.json index a3b475cb32..d73a4403b0 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "eslint-plugin-bpmn-io": "^1.0.0", "eslint-plugin-import": "^2.26.0", "execa": "^5.1.1", - "file-drops": "^0.4.0", + "file-drops": "^0.5.0", "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", "karma-coverage": "^2.2.0", From 0fd908cddbd1092be37189fe2fcb13cc9fc77e0d Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 6 Feb 2023 13:51:52 +0100 Subject: [PATCH 260/989] docs: improve core entry points JSDoc --- lib/BaseModeler.js | 8 ++++++-- lib/BaseViewer.js | 9 +++++++-- lib/Modeler.js | 8 ++++++-- lib/Viewer.js | 8 ++++++-- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/lib/BaseModeler.js b/lib/BaseModeler.js index 474c00e1af..cc0c551d00 100644 --- a/lib/BaseModeler.js +++ b/lib/BaseModeler.js @@ -5,6 +5,10 @@ import Ids from 'ids'; import BaseViewer from './BaseViewer'; +/** + * @typedef { import('didi').ModuleDeclaration } Module + */ + /** * A base modeler for BPMN 2.0 diagrams. * @@ -15,8 +19,8 @@ import BaseViewer from './BaseViewer'; * @param {string|number} [options.width] the width of the viewer * @param {string|number} [options.height] the height of the viewer * @param {Object} [options.moddleExtensions] extension packages to provide - * @param {Array} [options.modules] a list of modules to override the default modules - * @param {Array} [options.additionalModules] a list of modules to use with the default modules + * @param {Module[]} [options.modules] a list of modules to override the default modules + * @param {Module[]} [options.additionalModules] a list of modules to use with the default modules */ export default function BaseModeler(options) { BaseViewer.call(this, options); diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index 9d7bb93056..1370149319 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -35,6 +35,11 @@ import { wrapForCompatibility } from './util/CompatibilityUtil'; + +/** + * @typedef { import('didi').ModuleDeclaration } Module + */ + /** * A base viewer for BPMN 2.0 diagrams. * @@ -46,8 +51,8 @@ import { * @param {string|number} [options.width] the width of the viewer * @param {string|number} [options.height] the height of the viewer * @param {Object} [options.moddleExtensions] extension packages to provide - * @param {Array} [options.modules] a list of modules to override the default modules - * @param {Array} [options.additionalModules] a list of modules to use with the default modules + * @param {Module[]} [options.modules] a list of modules to override the default modules + * @param {Module[]} [options.additionalModules] a list of modules to use with the default modules */ export default function BaseViewer(options) { diff --git a/lib/Modeler.js b/lib/Modeler.js index 3c56175af1..80dfd220aa 100644 --- a/lib/Modeler.js +++ b/lib/Modeler.js @@ -61,6 +61,10 @@ var initialDiagram = ''; +/** + * @typedef { import('didi').ModuleDeclaration } Module + */ + /** * A modeler for BPMN 2.0 diagrams. * @@ -130,8 +134,8 @@ var initialDiagram = * @param {string|number} [options.width] the width of the viewer * @param {string|number} [options.height] the height of the viewer * @param {Object} [options.moddleExtensions] extension packages to provide - * @param {Array} [options.modules] a list of modules to override the default modules - * @param {Array} [options.additionalModules] a list of modules to use with the default modules + * @param {Module[]} [options.modules] a list of modules to override the default modules + * @param {Module[]} [options.additionalModules] a list of modules to use with the default modules */ export default function Modeler(options) { BaseModeler.call(this, options); diff --git a/lib/Viewer.js b/lib/Viewer.js index ac4a1db8bb..0de7232a0c 100644 --- a/lib/Viewer.js +++ b/lib/Viewer.js @@ -9,6 +9,10 @@ import DrilldownModdule from './features/drilldown'; import BaseViewer from './BaseViewer'; +/** + * @typedef { import('didi').ModuleDeclaration } Module + */ + /** * A viewer for BPMN 2.0 diagrams. * @@ -53,8 +57,8 @@ import BaseViewer from './BaseViewer'; * @param {string|number} [options.width] the width of the viewer * @param {string|number} [options.height] the height of the viewer * @param {Object} [options.moddleExtensions] extension packages to provide - * @param {Array} [options.modules] a list of modules to override the default modules - * @param {Array} [options.additionalModules] a list of modules to use with the default modules + * @param {Module[]} [options.modules] a list of modules to override the default modules + * @param {Module[]} [options.additionalModules] a list of modules to use with the default modules */ export default function Viewer(options) { BaseViewer.call(this, options); From 84d53de0b4a4d9ea16d7fc0a85e1ab8c34b00498 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 6 Feb 2023 14:05:09 +0100 Subject: [PATCH 261/989] feat: allow `BaseViewer#getModule` override with context --- lib/BaseViewer.js | 11 +++++++-- test/spec/BaseModelerSpec.js | 47 ++++++++++++++++++++++++++++++++++++ test/spec/BaseViewerSpec.js | 46 +++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 2 deletions(-) diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index 1370149319..9c858261cb 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -481,7 +481,14 @@ BaseViewer.prototype._setDefinitions = function(definitions) { this._definitions = definitions; }; -BaseViewer.prototype.getModules = function() { +/** + * Return modules to instantiate with. + * + * @param {any} options the instance got created with + * + * @return {Module[]} + */ +BaseViewer.prototype.getModules = function(options) { return this._modules; }; @@ -587,7 +594,7 @@ BaseViewer.prototype.detach = function() { BaseViewer.prototype._init = function(container, moddle, options) { - const baseModules = options.modules || this.getModules(), + const baseModules = options.modules || this.getModules(options), additionalModules = options.additionalModules || [], staticModules = [ { diff --git a/test/spec/BaseModelerSpec.js b/test/spec/BaseModelerSpec.js index 1b67633e7e..489a7e3d20 100644 --- a/test/spec/BaseModelerSpec.js +++ b/test/spec/BaseModelerSpec.js @@ -1,6 +1,11 @@ import BaseModeler from 'lib/BaseModeler'; import BaseViewer from 'lib/BaseViewer'; +import inherits from 'inherits-browser'; + + +const spy = sinon.spy; + describe('BaseModeler', function() { @@ -17,4 +22,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..968b4c6d0b 100644 --- a/test/spec/BaseViewerSpec.js +++ b/test/spec/BaseViewerSpec.js @@ -1,5 +1,10 @@ import BaseViewer from 'lib/BaseViewer'; +import inherits from 'inherits-browser'; + + +const spy = sinon.spy; + describe('BaseViewer', function() { @@ -15,4 +20,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; + }); + + }); + }); From 63d599f99b0af4fba6c94cad2434362c19bfd423 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 6 Feb 2023 21:51:28 +0100 Subject: [PATCH 262/989] chore(CHANGELOG): add v11.2.0 meta information --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c740f931a7..909e5c6307 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ ___Note:__ Yet to be released changes appear here._ ## 11.2.0 +_Adds create/append anything._ + * `FEAT`: append menu available via context pad ([#1802](https://github.com/bpmn-io/bpmn-js/pull/1802), [#1809](https://github.com/bpmn-io/bpmn-js/pull/1809), [#1815](https://github.com/bpmn-io/bpmn-js/pull/1815), [#1818](https://github.com/bpmn-io/bpmn-js/pull/1818), [#1831](https://github.com/bpmn-io/bpmn-js/pull/1831)) * `FEAT`: create menu available via palette ([#1811](https://github.com/bpmn-io/bpmn-js/pull/1811), [#1809](https://github.com/bpmn-io/bpmn-js/pull/1809), [#1817](https://github.com/bpmn-io/bpmn-js/pull/1817)) * `FEAT`: simplify connection-multi icon ([#1822](https://github.com/bpmn-io/bpmn-js/pull/1822)) From 453a923703b7edb47db985b00a4e889d7a57057d Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 6 Feb 2023 21:52:10 +0100 Subject: [PATCH 263/989] chore(CHANGELOG): add v11.0.0 meta information --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 909e5c6307..42e2e89ebc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,8 @@ _Re-release of `v11.0.2`._ ## 11.0.0 +_Reworks popup menu UI._ + * `FEAT`: integrate new popup menu UI ([#1776](https://github.com/bpmn-io/bpmn-js/pull/1776)) * `DEPS`: update to `diagram-js@11.1.0` ([#1776](https://github.com/bpmn-io/bpmn-js/pull/1776)) From 6f760ed27302df7739f5abe75ccf69d56fe6adad Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 3 Feb 2023 15:43:22 +0100 Subject: [PATCH 264/989] feat: improve visual presence of user and service tasks Ensures these are more prominently featured in replace + create/append anything menus. Related to https://github.com/bpmn-io/bpmn-js/issues/1621 --- .../util/OptionsUtil.js | 33 +++++++++---------- lib/features/replace/ReplaceOptions.js | 32 +++++++++--------- 2 files changed, 32 insertions(+), 33 deletions(-) diff --git a/lib/features/create-append-anything/util/OptionsUtil.js b/lib/features/create-append-anything/util/OptionsUtil.js index 7f58a87b48..8b8cb57323 100644 --- a/lib/features/create-append-anything/util/OptionsUtil.js +++ b/lib/features/create-append-anything/util/OptionsUtil.js @@ -490,6 +490,22 @@ export var TASK = [ type: 'bpmn:Task' } }, + { + label: 'User Task', + actionName: 'user-task', + className: 'bpmn-icon-user', + target: { + type: 'bpmn:UserTask' + } + }, + { + label: 'Service Task', + actionName: 'service-task', + className: 'bpmn-icon-service', + target: { + type: 'bpmn:ServiceTask' + } + }, { label: 'Send Task', actionName: 'send-task', @@ -504,15 +520,6 @@ export var TASK = [ className: 'bpmn-icon-receive', target: { type: 'bpmn:ReceiveTask' - } - }, - { - label: 'User Task', - actionName: 'user-task', - className: 'bpmn-icon-user', - target: { - type: 'bpmn:UserTask' - } }, { label: 'Manual Task', @@ -530,14 +537,6 @@ export var TASK = [ type: 'bpmn:BusinessRuleTask' } }, - { - label: 'Service Task', - actionName: 'service-task', - className: 'bpmn-icon-service', - target: { - type: 'bpmn:ServiceTask' - } - }, { label: 'Script Task', actionName: 'script-task', diff --git a/lib/features/replace/ReplaceOptions.js b/lib/features/replace/ReplaceOptions.js index 4c64dadd46..23052a20ec 100644 --- a/lib/features/replace/ReplaceOptions.js +++ b/lib/features/replace/ReplaceOptions.js @@ -443,6 +443,22 @@ export var TASK = [ type: 'bpmn:Task' } }, + { + label: 'User Task', + actionName: 'replace-with-user-task', + className: 'bpmn-icon-user', + target: { + type: 'bpmn:UserTask' + } + }, + { + label: 'Service Task', + actionName: 'replace-with-service-task', + className: 'bpmn-icon-service', + target: { + type: 'bpmn:ServiceTask' + } + }, { label: 'Send Task', actionName: 'replace-with-send-task', @@ -459,14 +475,6 @@ export var TASK = [ type: 'bpmn:ReceiveTask' } }, - { - label: 'User Task', - actionName: 'replace-with-user-task', - className: 'bpmn-icon-user', - target: { - type: 'bpmn:UserTask' - } - }, { label: 'Manual Task', actionName: 'replace-with-manual-task', @@ -483,14 +491,6 @@ export var TASK = [ type: 'bpmn:BusinessRuleTask' } }, - { - label: 'Service Task', - actionName: 'replace-with-service-task', - className: 'bpmn-icon-service', - target: { - type: 'bpmn:ServiceTask' - } - }, { label: 'Script Task', actionName: 'replace-with-script-task', From bf211b5616c9624dee952948d1c12745de1f5157 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 3 Feb 2023 15:45:56 +0100 Subject: [PATCH 265/989] feat(create-append-anything): initially filter rarely used items Closes https://github.com/bpmn-io/bpmn-js/issues/1621 --- .../create-append-anything/AppendMenuProvider.js | 4 +++- .../create-append-anything/CreateMenuProvider.js | 4 +++- .../create-append-anything/util/OptionsUtil.js | 14 ++++++++++---- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/features/create-append-anything/AppendMenuProvider.js b/lib/features/create-append-anything/AppendMenuProvider.js index b4301be805..76779ee5f6 100644 --- a/lib/features/create-append-anything/AppendMenuProvider.js +++ b/lib/features/create-append-anything/AppendMenuProvider.js @@ -66,7 +66,8 @@ AppendMenuProvider.prototype.getPopupMenuEntries = function(element) { target, description, group, - search + search, + rank } = option; entries[`append-${actionName}`] = { @@ -75,6 +76,7 @@ AppendMenuProvider.prototype.getPopupMenuEntries = function(element) { description, group, search, + rank, action: this._createEntryAction(element, target) }; }); diff --git a/lib/features/create-append-anything/CreateMenuProvider.js b/lib/features/create-append-anything/CreateMenuProvider.js index 44b5e32f7b..f7e6b2d0cd 100644 --- a/lib/features/create-append-anything/CreateMenuProvider.js +++ b/lib/features/create-append-anything/CreateMenuProvider.js @@ -53,7 +53,8 @@ CreateMenuProvider.prototype.getPopupMenuEntries = function() { target, description, group, - search + search, + rank } = option; const targetAction = this._createEntryAction(target); @@ -67,6 +68,7 @@ CreateMenuProvider.prototype.getPopupMenuEntries = function() { name: this._translate(group.name) }, search, + rank, action: { click: targetAction, dragstart: targetAction diff --git a/lib/features/create-append-anything/util/OptionsUtil.js b/lib/features/create-append-anything/util/OptionsUtil.js index 8b8cb57323..a29a50e993 100644 --- a/lib/features/create-append-anything/util/OptionsUtil.js +++ b/lib/features/create-append-anything/util/OptionsUtil.js @@ -416,7 +416,8 @@ export var GATEWAY = [ className: 'bpmn-icon-gateway-or', target: { type: 'bpmn:InclusiveGateway' - } + }, + rank: -1 }, { label: 'Complex Gateway', @@ -424,7 +425,8 @@ export var GATEWAY = [ className: 'bpmn-icon-gateway-complex', target: { type: 'bpmn:ComplexGateway' - } + }, + rank: -1 }, { label: 'Event based Gateway', @@ -512,7 +514,8 @@ export var TASK = [ className: 'bpmn-icon-send', target: { type: 'bpmn:SendTask' - } + }, + rank: -1 }, { label: 'Receive Task', @@ -520,6 +523,8 @@ export var TASK = [ className: 'bpmn-icon-receive', target: { type: 'bpmn:ReceiveTask' + }, + rank: -1 }, { label: 'Manual Task', @@ -527,7 +532,8 @@ export var TASK = [ className: 'bpmn-icon-manual', target: { type: 'bpmn:ManualTask' - } + }, + rank: -1 }, { label: 'Business Rule Task', From 26135c0e99f050f67cc3b712822a05ca6a53cac9 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 6 Feb 2023 17:29:24 +0100 Subject: [PATCH 266/989] deps: update to diagram-js@11.9.0 Foundation for https://github.com/bpmn-io/bpmn-js/issues/1621. --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2135da43a4..e6e708c81c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.8.0", + "diagram-js": "^11.9.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3388,9 +3388,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.8.0.tgz", - "integrity": "sha512-N1V3GjHeTdsWUPd4rjYun503b31GdDFy8VvaI/91CrnJr+iIAjiRlbH5vyiSHc8bmzKe6ykoiNe8Nm9ZJrg2AQ==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.9.0.tgz", + "integrity": "sha512-1SKhsTB05TtYkm7x4kGT37p5j87OaLvSz2rqyuM1ZzB9fkolrEXyeU+xgdzeq2QtAcg/mwyOnhlANVLGH8pRqQ==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", @@ -19033,9 +19033,9 @@ "dev": true }, "diagram-js": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.8.0.tgz", - "integrity": "sha512-N1V3GjHeTdsWUPd4rjYun503b31GdDFy8VvaI/91CrnJr+iIAjiRlbH5vyiSHc8bmzKe6ykoiNe8Nm9ZJrg2AQ==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.9.0.tgz", + "integrity": "sha512-1SKhsTB05TtYkm7x4kGT37p5j87OaLvSz2rqyuM1ZzB9fkolrEXyeU+xgdzeq2QtAcg/mwyOnhlANVLGH8pRqQ==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", diff --git a/package.json b/package.json index d73a4403b0..179137e6cc 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.8.0", + "diagram-js": "^11.9.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From 7f5fe309c9f3ace0098862227da4617db099dbe3 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 6 Feb 2023 17:29:46 +0100 Subject: [PATCH 267/989] chore(CHANGELOG): add missing v11.2.0 entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42e2e89ebc..e99c5615f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ _Adds create/append anything._ * `FEAT`: join paths `round` by default ([1827](https://github.com/bpmn-io/bpmn-js/pull/1827)) * `FEAT`: improved BPMN symbol rendering ([#1830](https://github.com/bpmn-io/bpmn-js/pull/1830)) * `FEAT`: round connection corners ([#1828](https://github.com/bpmn-io/bpmn-js/pull/1828)) +* `FEAT`: improve visibility of popup menu ([#1812](https://github.com/bpmn-io/bpmn-js/issues/1812)) * `FIX`: missing special attributes in `bpmnElementFactory` ([#1807](https://github.com/bpmn-io/bpmn-js/pull/1807)) * `FIX`: handle `bpmn:DataObjectReference` without data object in replace menu ([#1823](https://github.com/bpmn-io/bpmn-js/pull/1823)) * `DEPS`: update to `diagram-js@11.8.0` From 759334aa4781a9c03aeabb7770456fbb91f51d8d Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 6 Feb 2023 17:40:35 +0100 Subject: [PATCH 268/989] chore(CHANGELOG): update to v11.3.0 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e99c5615f5..cf08b23759 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.3.0 + +* `FEAT`: feature `service` and `user` tasks more prominently in replace menu ([#1836](https://github.com/bpmn-io/bpmn-js/pull/1836)) +* `FEAT`: hide rare items initially from create/append menus ([#1836](https://github.com/bpmn-io/bpmn-js/pull/1836)) +* `FEAT`: retrieve instantiation modules with context ([#1835](https://github.com/bpmn-io/bpmn-js/pull/1835)) +* `DEPS`: update to `diagram-js@11.9.0` + ## 11.2.0 _Adds create/append anything._ From 5f778126b27f59f6d325a0e261eae7ddef9c1651 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 7 Feb 2023 15:56:29 +0100 Subject: [PATCH 269/989] 11.3.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e6e708c81c..f6ece0d8d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.2.0", + "version": "11.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.2.0", + "version": "11.3.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 179137e6cc..272c69649c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.2.0", + "version": "11.3.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From e9a02d68a1ba66eb04e27edfaec43aed444e3fbb Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 8 Feb 2023 16:32:41 +0100 Subject: [PATCH 270/989] docs: fix comment --- lib/features/create-append-anything/AppendContextPadProvider.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/features/create-append-anything/AppendContextPadProvider.js b/lib/features/create-append-anything/AppendContextPadProvider.js index 105e6e219e..4797a4267a 100644 --- a/lib/features/create-append-anything/AppendContextPadProvider.js +++ b/lib/features/create-append-anything/AppendContextPadProvider.js @@ -34,7 +34,7 @@ AppendContextPadProvider.prototype.getContextPadEntries = function(element) { if (!popupMenu.isEmpty(element, 'bpmn-append')) { - // Replace menu entry + // append menu entry return { 'append': { group: 'model', From 556ada9f8d8bc1f99c814c9de2f4722a9c099600 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 8 Feb 2023 16:33:17 +0100 Subject: [PATCH 271/989] chore(create-append-anything): simplify palette provider --- .../CreatePaletteProvider.js | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/lib/features/create-append-anything/CreatePaletteProvider.js b/lib/features/create-append-anything/CreatePaletteProvider.js index a62ffc4fff..aeb95d1404 100644 --- a/lib/features/create-append-anything/CreatePaletteProvider.js +++ b/lib/features/create-append-anything/CreatePaletteProvider.js @@ -1,7 +1,5 @@ -import { - assign -} from 'min-dash'; import { createIcon } from '../../icons/Icons'; + import { query as domQuery } from 'min-dom'; @@ -28,8 +26,7 @@ CreatePaletteProvider.$inject = [ CreatePaletteProvider.prototype.getPaletteEntries = function(element) { - const actions = {}, - translate = this._translate, + const translate = this._translate, popupMenu = this._popupMenu, canvas = this._canvas, mouse = this._mouse; @@ -52,7 +49,7 @@ CreatePaletteProvider.prototype.getPaletteEntries = function(element) { }; }; - assign(actions, { + return { 'create': { group: 'create', imageUrl: createIcon, @@ -70,8 +67,6 @@ CreatePaletteProvider.prototype.getPaletteEntries = function(element) { }); } } - }, - }); - - return actions; + } + }; }; From 88fa08f504a64e806bf4a35c14d2e93812f0a0da Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 8 Feb 2023 17:05:34 +0100 Subject: [PATCH 272/989] chore(CHANGELOG): update to v11.3.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf08b23759..180f1ca16f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.3.1 + +_Republish of `v11.3.0`._ + ## 11.3.0 * `FEAT`: feature `service` and `user` tasks more prominently in replace menu ([#1836](https://github.com/bpmn-io/bpmn-js/pull/1836)) From dfe5e25c1d8a1fd2ce05b9494f44ee24082a92b2 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 8 Feb 2023 17:08:57 +0100 Subject: [PATCH 273/989] 11.3.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f6ece0d8d7..aa6801e413 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.3.0", + "version": "11.3.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.3.0", + "version": "11.3.1", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 272c69649c..14aad473c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.3.0", + "version": "11.3.1", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 5b5ee98ec4e33e908d2e0b621d3cd128138f2052 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Wed, 18 Jan 2023 22:48:41 +0100 Subject: [PATCH 274/989] feat(popup-menu): translate append entries Ensure we translate append labels + groups. --- .../create-append-anything/AppendMenuProvider.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/features/create-append-anything/AppendMenuProvider.js b/lib/features/create-append-anything/AppendMenuProvider.js index 76779ee5f6..17324f2f34 100644 --- a/lib/features/create-append-anything/AppendMenuProvider.js +++ b/lib/features/create-append-anything/AppendMenuProvider.js @@ -10,7 +10,8 @@ export default function AppendMenuProvider( create, autoPlace, rules, - mouse + mouse, + translate ) { this._elementFactory = elementFactory; this._popupMenu = popupMenu; @@ -19,6 +20,7 @@ export default function AppendMenuProvider( this._rules = rules; this._create = create; this._mouse = mouse; + this._translate = translate; this.register(); } @@ -29,7 +31,8 @@ AppendMenuProvider.$inject = [ 'create', 'autoPlace', 'rules', - 'mouse' + 'mouse', + 'translate' ]; /** @@ -48,6 +51,8 @@ AppendMenuProvider.prototype.register = function() { */ AppendMenuProvider.prototype.getPopupMenuEntries = function(element) { const rules = this._rules; + const translate = this._translate; + const entries = {}; if (!rules.allowed('shape.append', { element: element })) { @@ -71,10 +76,13 @@ AppendMenuProvider.prototype.getPopupMenuEntries = function(element) { } = option; entries[`append-${actionName}`] = { - label, + label: label && translate(label), className, description, - group, + group: group && { + ...group, + name: translate(group.name) + }, search, rank, action: this._createEntryAction(element, target) From 12a10902ba52b60488d5ddf77b845679df21e656 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Fri, 10 Feb 2023 11:56:13 +0100 Subject: [PATCH 275/989] fix(append-anything): element connection via dragstart Related to https://github.com/camunda/camunda-modeler/issues/3436 --- .../AppendMenuProvider.js | 4 +- .../AppendMenuProvider.bpmn | 48 +++---- .../AppendMenuProviderSpec.js | 125 +++++++++++++++++- 3 files changed, 147 insertions(+), 30 deletions(-) diff --git a/lib/features/create-append-anything/AppendMenuProvider.js b/lib/features/create-append-anything/AppendMenuProvider.js index 17324f2f34..430b1ce5de 100644 --- a/lib/features/create-append-anything/AppendMenuProvider.js +++ b/lib/features/create-append-anything/AppendMenuProvider.js @@ -150,7 +150,9 @@ AppendMenuProvider.prototype._createEntryAction = function(element, target) { event = mouse.getLastMoveEvent(); } - return create.start(event, newElement); + return create.start(event, newElement, { + source: element + }); }; return { diff --git a/test/spec/features/create-append-anything/AppendMenuProvider.bpmn b/test/spec/features/create-append-anything/AppendMenuProvider.bpmn index 67702f61f7..3b0f011ce7 100644 --- a/test/spec/features/create-append-anything/AppendMenuProvider.bpmn +++ b/test/spec/features/create-append-anything/AppendMenuProvider.bpmn @@ -1,43 +1,37 @@ - - - - - - Flow_00dqsyf - + + + Flow_0zr9ajj + Flow_00dqsyf Flow_0zr9ajj - - Flow_0zr9ajj - - + + Flow_00dqsyf + + - - - - - - + + + - - + + - - + + - - - + + + - - - + + + diff --git a/test/spec/features/create-append-anything/AppendMenuProviderSpec.js b/test/spec/features/create-append-anything/AppendMenuProviderSpec.js index e5f973d03c..740e72972b 100644 --- a/test/spec/features/create-append-anything/AppendMenuProviderSpec.js +++ b/test/spec/features/create-append-anything/AppendMenuProviderSpec.js @@ -160,6 +160,28 @@ describe('features/create-append-anything - append menu provider', function() { })); + it('should append via dragstart', inject(function(elementRegistry, eventBus, dragging) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + const createSpy = sinon.spy(); + const endSpy = sinon.spy(); + + eventBus.on('create.start', createSpy); + eventBus.on('create.end', endSpy); + + // when + openPopup(startEvent); + placeDragElement(startEvent, 'append-task'); + + // then + expect(createSpy).to.have.been.called; + expect(endSpy).to.have.been.called; + expect(outgoingFlows).to.have.length(2); + })); + + it('should undo', inject(function(elementRegistry, commandStack) { // given @@ -224,6 +246,28 @@ describe('features/create-append-anything - append menu provider', function() { })); + it('should append via dragstart', inject(function(elementRegistry, eventBus, dragging) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + const createSpy = sinon.spy(); + const endSpy = sinon.spy(); + + eventBus.on('create.start', createSpy); + eventBus.on('create.end', endSpy); + + // when + openPopup(startEvent); + placeDragElement(startEvent, 'append-expanded-subprocess'); + + // then + expect(createSpy).to.have.been.called; + expect(endSpy).to.have.been.called; + expect(outgoingFlows).to.have.length(2); + })); + + it('should undo', inject(function(elementRegistry, commandStack) { // given @@ -312,6 +356,28 @@ describe('features/create-append-anything - append menu provider', function() { })); + it('should append via dragstart', inject(function(elementRegistry, eventBus, dragging) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + const createSpy = sinon.spy(); + const endSpy = sinon.spy(); + + eventBus.on('create.start', createSpy); + eventBus.on('create.end', endSpy); + + // when + openPopup(startEvent); + placeDragElement(startEvent, 'append-none-end-event'); + + // then + expect(createSpy).to.have.been.called; + expect(endSpy).to.have.been.called; + expect(outgoingFlows).to.have.length(2); + })); + + it('should undo', inject(function(elementRegistry, commandStack) { // given @@ -419,6 +485,28 @@ describe('features/create-append-anything - append menu provider', function() { })); + it('should append via dragstart', inject(function(elementRegistry, eventBus, dragging) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + const createSpy = sinon.spy(); + const endSpy = sinon.spy(); + + eventBus.on('create.start', createSpy); + eventBus.on('create.end', endSpy); + + // when + openPopup(startEvent); + placeDragElement(startEvent, 'append-exclusive-gateway'); + + // then + expect(createSpy).to.have.been.called; + expect(endSpy).to.have.been.called; + expect(outgoingFlows).to.have.length(2); + })); + + it('should undo', inject(function(elementRegistry, commandStack) { // given @@ -482,6 +570,28 @@ describe('features/create-append-anything - append menu provider', function() { })); + it('should append via dragstart', inject(function(elementRegistry, eventBus, dragging) { + + // given + const startEvent = elementRegistry.get('StartEvent'); + const outgoingFlows = getBusinessObject(startEvent).outgoing; + const createSpy = sinon.spy(); + const endSpy = sinon.spy(); + + eventBus.on('create.start', createSpy); + eventBus.on('create.end', endSpy); + + // when + openPopup(startEvent); + placeDragElement(startEvent, 'append-data-store-reference'); + + // then + expect(createSpy).to.have.been.called; + expect(endSpy).to.have.been.called; + expect(outgoingFlows).to.have.length(1); + })); + + it('should undo', inject(function(elementRegistry, commandStack) { // given @@ -560,7 +670,7 @@ function getMenuContainer() { return popup._current.container; } -function triggerAction(id) { +function triggerAction(id, action = 'click') { var entry = queryEntry(id); if (!entry) { @@ -568,6 +678,17 @@ function triggerAction(id) { } var popupMenu = getBpmnJS().get('popupMenu'); + return popupMenu.trigger(globalEvent(entry, { x: 0, y: 0 }), null, action); +} + +function placeDragElement(element, action) { + var dragging = getBpmnJS().get('dragging'); + var elementRegistry = getBpmnJS().get('elementRegistry'); + + let processElement = elementRegistry.get('Process_07k5b99'); + + triggerAction(action, 'dragstart'); - return popupMenu.trigger(globalEvent(entry, { x: 0, y: 0 })); + dragging.hover({ element: processElement }); + dragging.end(); } \ No newline at end of file From 3c90e8ef96b0a315bf78b25b29053abd87b57b27 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 13 Feb 2023 15:33:10 +0100 Subject: [PATCH 276/989] feat(label-editing): activate direct editing on participant creation Related to https://github.com/camunda/camunda-modeler/issues/3440 --- .../label-editing/LabelEditingProvider.js | 2 +- .../label-editing/LabelEditingProviderSpec.js | 65 +++++++++++++------ 2 files changed, 45 insertions(+), 22 deletions(-) diff --git a/lib/features/label-editing/LabelEditingProvider.js b/lib/features/label-editing/LabelEditingProvider.js index ecfd6077a9..0ea82e28b0 100644 --- a/lib/features/label-editing/LabelEditingProvider.js +++ b/lib/features/label-editing/LabelEditingProvider.js @@ -114,7 +114,7 @@ export default function LabelEditingProvider( function activateDirectEdit(element, force) { if (force || - isAny(element, [ 'bpmn:Task', 'bpmn:TextAnnotation' ]) || + isAny(element, [ 'bpmn:Task', 'bpmn:TextAnnotation', 'bpmn:Participant' ]) || isCollapsedSubProcess(element)) { directEditing.activate(element); diff --git a/test/spec/features/label-editing/LabelEditingProviderSpec.js b/test/spec/features/label-editing/LabelEditingProviderSpec.js index b2f21d126c..0c3dc347a3 100644 --- a/test/spec/features/label-editing/LabelEditingProviderSpec.js +++ b/test/spec/features/label-editing/LabelEditingProviderSpec.js @@ -518,36 +518,59 @@ describe('features - label-editing', function() { }); - describe('after elements create', function() { + describe('on element creation', function() { - var createTaskElement; + function createTaskElement(context) { + var shape = elementFactory.create('shape', { type: 'bpmn:Task' }), + parent = elementRegistry.get('SubProcess_1'), + parentGfx = elementRegistry.getGraphics(parent); - beforeEach(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(); + } - createTaskElement = function(context) { + function createParticipant() { - var shape = elementFactory.create('shape', { type: 'bpmn:Task' }), - parent = elementRegistry.get('SubProcess_1'), - parentGfx = elementRegistry.getGraphics(parent); + var collaboration = elementRegistry.get('Collaboration_1o0amh9'), + collaborationGfx = elementRegistry.getGraphics(collaboration); - create.start(canvasEvent({ x: 0, y: 0 }), [ shape ], context); - dragging.hover({ - element: parent, - gfx: parentGfx - }); - dragging.move(canvasEvent({ x: 400, y: 250 })); - dragging.end(); - }; + var participant = elementFactory.createParticipantShape(); - }); + // when + create.start(canvasEvent({ x: 400, y: 300 }), participant); - it('should activate', function() { + dragging.hover({ element: collaboration, gfx: collaborationGfx }); + dragging.move(canvasEvent({ x: 400, y: 300 })); - // when - createTaskElement(); + dragging.end(); + } - // then - expect(directEditing.isActive()).to.be.true; + + describe('should activate', function() { + + it('on Task creation', function() { + + // when + createTaskElement(); + + // then + expect(directEditing.isActive()).to.be.true; + }); + + + it('on Participant creation', function() { + + // when + createParticipant(); + + // then + expect(directEditing.isActive()).to.be.true; + }); }); From e017cdc9df8b5d76b6cf2288cc5d58a7789c355e Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Mon, 13 Feb 2023 21:17:38 +0100 Subject: [PATCH 277/989] fix(create-append-anything): extend append shortcut use case Closes #1840 --- .../CreateAppendEditorActions.js | 15 +++-- .../CreateAppendKeyboardBindings.js | 9 +-- .../CreateAppendEditorActionsSpec.js | 56 +++++++++++++++---- 3 files changed, 58 insertions(+), 22 deletions(-) diff --git a/lib/features/create-append-anything/CreateAppendEditorActions.js b/lib/features/create-append-anything/CreateAppendEditorActions.js index 6cffded855..0d412eb6d1 100644 --- a/lib/features/create-append-anything/CreateAppendEditorActions.js +++ b/lib/features/create-append-anything/CreateAppendEditorActions.js @@ -25,16 +25,23 @@ CreateAppendEditorActions.prototype.registerActions = function() { var selection = this._injector.get('selection', false); var contextPad = this._injector.get('contextPad', false); var palette = this._injector.get('palette', false); + var popupMenu = this._injector.get('popupMenu', false); const actions = {}; // append - if (selection && contextPad) { + if (selection && contextPad && palette && popupMenu && palette) { assign(actions, { 'appendElement': function(event) { - contextPad.triggerEntry('append', 'click', event); - } } - ); + const selected = selection && selection.get(); + + if (selected.length == 1 && !popupMenu.isEmpty(selected[0], 'bpmn-append')) { + contextPad.triggerEntry('append', 'click', event); + } else { + palette.triggerEntry('create', 'click', event); + } + } + }); } // create diff --git a/lib/features/create-append-anything/CreateAppendKeyboardBindings.js b/lib/features/create-append-anything/CreateAppendKeyboardBindings.js index a09c7d3734..8a8921f4b9 100644 --- a/lib/features/create-append-anything/CreateAppendKeyboardBindings.js +++ b/lib/features/create-append-anything/CreateAppendKeyboardBindings.js @@ -13,7 +13,6 @@ export default function CreateAppendKeyboardBindings(injector) { this._injector = injector; this._keyboard = this._injector.get('keyboard', false); this._editorActions = this._injector.get('editorActions', false); - this._selection = this._injector.get('selection', false); if (this._keyboard) { this._injector.invoke(KeyboardBindings, this); @@ -37,7 +36,6 @@ CreateAppendKeyboardBindings.prototype.registerBindings = function() { var keyboard = this._keyboard; var editorActions = this._editorActions; - var selection = this._selection; // inherit default bindings KeyboardBindings.prototype.registerBindings.call(this, keyboard, editorActions); @@ -68,12 +66,7 @@ CreateAppendKeyboardBindings.prototype.registerBindings = function() { if (keyboard && keyboard.isKey([ 'a', 'A' ], event)) { - if (selection && selection.get().length == 1) { - editorActions && editorActions.trigger('appendElement', event); - } else { - editorActions && editorActions.trigger('createElement', event); - } - + editorActions && editorActions.trigger('appendElement', event); return true; } }); diff --git a/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js b/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js index 051ddb06de..8d7691f1d7 100644 --- a/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js +++ b/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js @@ -1,8 +1,13 @@ import { bootstrapModeler, - inject + inject, + getBpmnJS } from 'test/TestHelper'; +import { + query as domQuery +} from 'min-dom'; + import selectionModule from 'diagram-js/lib/features/selection'; import modelingModule from 'lib/features/modeling'; import coreModule from 'lib/core'; @@ -42,12 +47,19 @@ describe('features/create-append-anything - editor actions', function() { // then expect(changedSpy).to.have.been.called; + expect(isMenu('bpmn-append')).to.be.true; })); - it('should not open append element if no selection', inject(function(editorActions, eventBus) { + it('should open create 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 @@ -56,19 +68,33 @@ describe('features/create-append-anything - editor actions', function() { editorActions.trigger('appendElement', {}); // then - expect(changedSpy).to.not.have.been.called; + expect(changedSpy).to.have.been.called; + expect(isMenu('bpmn-create')).to.be.true; })); - it('should not open append element if multiple elements selected', inject(function(elementRegistry, selection, editorActions, eventBus) { + it('should open create element if no selection', inject(function(elementRegistry, selection, editorActions, eventBus) { // given - var elementIds = [ 'StartEvent_1', 'UserTask_1' ]; - var elements = elementIds.map(function(id) { - return elementRegistry.get(id); - }); + var changedSpy = sinon.spy(); - selection.select(elements); + // when + eventBus.once('popupMenu.open', changedSpy); + + editorActions.trigger('appendElement', {}); + + // then + expect(changedSpy).to.have.been.called; + expect(isMenu('bpmn-create')).to.be.true; + })); + + + it('should open create element if append not allowed', inject(function(elementRegistry, selection, editorActions, eventBus) { + + // given + const element = elementRegistry.get('EndEvent_1'); + + selection.select(element); var changedSpy = sinon.spy(); // when @@ -77,7 +103,8 @@ describe('features/create-append-anything - editor actions', function() { editorActions.trigger('appendElement', {}); // then - expect(changedSpy).to.not.have.been.called; + expect(changedSpy).to.have.been.called; + expect(isMenu('bpmn-create')).to.be.true; })); }); @@ -112,3 +139,12 @@ describe('features/create-append-anything - editor actions', function() { }); }); + + +// helpers ////////////////////// +function isMenu(menuId) { + const popup = getBpmnJS().get('popupMenu'); + const popupElement = popup._current && domQuery('.djs-popup', popup._current.container); + + return popupElement.classList.contains(menuId); +} \ No newline at end of file From 9c6e475681dd6b6a418b2fbc1dac19a9df360953 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 13 Feb 2023 15:45:05 +0100 Subject: [PATCH 278/989] fix: restore marker `stroke-dasharray` 2015 workaround Reverts https://github.com/bpmn-io/bpmn-js/commit/eb4b54f7ffdb55e340aac291c33a5f4d66e246b3 as it breaks image export. Related to https://github.com/camunda/camunda-modeler/issues/3442. --- lib/draw/BpmnRenderer.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index c81eaca9f4..f0988e1e20 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -177,7 +177,11 @@ export default function BpmnRenderer( ...shapeStyle({ fill: fill, stroke: stroke, - strokeWidth: 1 + strokeWidth: 1, + + // fix for safari / chrome / firefox bug not correctly + // resetting stroke dash array + strokeDasharray: [ 10000, 1 ] }) }); @@ -193,7 +197,11 @@ export default function BpmnRenderer( ...shapeStyle({ fill: fill, stroke: stroke, - strokeWidth: 1 + strokeWidth: 1, + + // fix for safari / chrome / firefox bug not correctly + // resetting stroke dash array + strokeDasharray: [ 10000, 1 ] }) }); @@ -209,7 +217,11 @@ export default function BpmnRenderer( ...lineStyle({ fill: 'none', stroke: stroke, - strokeWidth: 1.5 + strokeWidth: 1.5, + + // fix for safari / chrome / firefox bug not correctly + // resetting stroke dash array + strokeDasharray: [ 10000, 1 ] }) }); @@ -226,7 +238,11 @@ export default function BpmnRenderer( ...lineStyle({ fill: 'none', stroke: stroke, - strokeWidth: 1.5 + strokeWidth: 1.5, + + // fix for safari / chrome / firefox bug not correctly + // resetting stroke dash array + strokeDasharray: [ 10000, 1 ] }) }); From 7ad80d19560844c2d92b90e94329c8b2bc363a7a Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Thu, 16 Feb 2023 09:22:18 +0100 Subject: [PATCH 279/989] chore(CHANGELOG): update to v11.4.0 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 180f1ca16f..a814fa9880 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.4.0 + +* `FEAT`: translate append menu entry labels and groups ([#1810](https://github.com/bpmn-io/bpmn-js/pull/1810)) +* `FEAT`: activate direct editing on participant creation ([#1845](https://github.com/bpmn-io/bpmn-js/pull/1845)) +* `FIX`: dragging append menu entries creates element connection ([#1843](https://github.com/bpmn-io/bpmn-js/pull/1843)) +* `FIX`: append shortcut triggers create menu if append not allowed ([#1840](https://github.com/bpmn-io/bpmn-js/issues/1840)) + ## 11.3.1 _Republish of `v11.3.0`._ From 84ff9df0ae1fdc94aa3dbff285c04862d83cb325 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Thu, 16 Feb 2023 10:36:50 +0100 Subject: [PATCH 280/989] 11.4.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index aa6801e413..8b709676e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.3.1", + "version": "11.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.3.1", + "version": "11.4.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 14aad473c7..0231b00a70 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.3.1", + "version": "11.4.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From ca526ba2fc2ad3bade18d976279df2e993a449bf Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 16 Feb 2023 11:09:34 +0100 Subject: [PATCH 281/989] chore(CHANGELOG): add missing entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a814fa9880..de86595380 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ___Note:__ Yet to be released changes appear here._ * `FEAT`: activate direct editing on participant creation ([#1845](https://github.com/bpmn-io/bpmn-js/pull/1845)) * `FIX`: dragging append menu entries creates element connection ([#1843](https://github.com/bpmn-io/bpmn-js/pull/1843)) * `FIX`: append shortcut triggers create menu if append not allowed ([#1840](https://github.com/bpmn-io/bpmn-js/issues/1840)) +* `FIX`: restore marker rendering workaround ([`9c6e475`](https://github.com/bpmn-io/bpmn-js/commit/9c6e475681dd6b6a418b2fbc1dac19a9df360953)) ## 11.3.1 From 530b61ec371e7e6b2c9b435ba0399e4d0930f441 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 16 Feb 2023 11:55:34 +0100 Subject: [PATCH 282/989] deps: update to diagram-js@11.9.1 Closes https://github.com/bpmn-io/bpmn-js/issues/1842 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8b709676e2..8a1aea41d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.9.0", + "diagram-js": "^11.9.1", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3388,9 +3388,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.9.0.tgz", - "integrity": "sha512-1SKhsTB05TtYkm7x4kGT37p5j87OaLvSz2rqyuM1ZzB9fkolrEXyeU+xgdzeq2QtAcg/mwyOnhlANVLGH8pRqQ==", + "version": "11.9.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.9.1.tgz", + "integrity": "sha512-qhqNSCq1k4ftHMJy0czNPlA5rFyccv/TakXrDYOtSpdrPJ0zHqWzZdw9/Of5UpixxPsMkoeu6U7Ox1sXLKRp3Q==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", @@ -19033,9 +19033,9 @@ "dev": true }, "diagram-js": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.9.0.tgz", - "integrity": "sha512-1SKhsTB05TtYkm7x4kGT37p5j87OaLvSz2rqyuM1ZzB9fkolrEXyeU+xgdzeq2QtAcg/mwyOnhlANVLGH8pRqQ==", + "version": "11.9.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.9.1.tgz", + "integrity": "sha512-qhqNSCq1k4ftHMJy0czNPlA5rFyccv/TakXrDYOtSpdrPJ0zHqWzZdw9/Of5UpixxPsMkoeu6U7Ox1sXLKRp3Q==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", diff --git a/package.json b/package.json index 0231b00a70..e92f735984 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "dependencies": { "bpmn-moddle": "^8.0.0", "css.escape": "^1.5.1", - "diagram-js": "^11.9.0", + "diagram-js": "^11.9.1", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From 82ee5c7449e2b3cbaf7ebc05eb9f1f6d2072ef92 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 16 Feb 2023 11:56:46 +0100 Subject: [PATCH 283/989] chore(CHANGELOG): update to v11.4.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index de86595380..dd2d695ef2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.4.1 + +* `FIX`: correct redo triggering on international keyboard layouts ([#1842](https://github.com/bpmn-io/bpmn-js/issues/1842)) + ## 11.4.0 * `FEAT`: translate append menu entry labels and groups ([#1810](https://github.com/bpmn-io/bpmn-js/pull/1810)) From e1ad52a270b720145ad5f4f9b2f98c2dac72fd77 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 16 Feb 2023 12:00:24 +0100 Subject: [PATCH 284/989] 11.4.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a1aea41d7..e408a0b840 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.4.0", + "version": "11.4.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.4.0", + "version": "11.4.1", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index e92f735984..5fa382be86 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.4.0", + "version": "11.4.1", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From a3d12aca1a9c399d5aad3896cd844ccebe2f9e6e Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 20 Feb 2023 17:44:14 +0100 Subject: [PATCH 285/989] docs: update translations.json to v11.4.1 --- docs/translations.json | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/translations.json b/docs/translations.json index 814a62f1c4..5ddb8940fa 100644 --- a/docs/translations.json +++ b/docs/translations.json @@ -6,6 +6,13 @@ "Ad-hoc", "Add Lane above", "Add Lane below", + "Align elements", + "Align elements bottom", + "Align elements center", + "Align elements left", + "Align elements middle", + "Align elements right", + "Align elements top", "Append ConditionIntermediateCatchEvent", "Append EndEvent", "Append Gateway", @@ -16,10 +23,14 @@ "Append Task", "Append TimerIntermediateCatchEvent", "Append compensation activity", + "Append element", "Append {type}", + "Boundary Event", "Business Rule Task", "Call Activity", "Cancel Boundary Event", + "Cancel End Event", + "Change element", "Change type", "Collection", "Compensation Boundary Event", @@ -45,10 +56,14 @@ "Create Pool/Participant", "Create StartEvent", "Create Task", + "Create element", "Create expanded SubProcess", + "Data", "Data Object Reference", "Data Store Reference", "Default Flow", + "Distribute elements horizontally", + "Distribute elements vertically", "Divide into three Lanes", "Divide into two Lanes", "Empty Pool", @@ -65,7 +80,10 @@ "Escalation Start Event (non-interrupting)", "Event Sub Process", "Event based Gateway", + "Events", "Exclusive Gateway", + "Expanded Pool", + "Gateways", "Inclusive Gateway", "Intermediate Throw Event", "Link Intermediate Catch Event", @@ -82,6 +100,7 @@ "Parallel Gateway", "Parallel Multi Instance", "Participant Multiplicity", + "Participants", "Receive Task", "Remove", "Script Task", @@ -100,7 +119,9 @@ "Sub Process", "Sub Process (collapsed)", "Sub Process (expanded)", + "Sub Processes", "Task", + "Tasks", "Terminate End Event", "Timer Boundary Event", "Timer Boundary Event (non-interrupting)", From 6c9c96700d8641163b6ca9e7f1c7b3d3d0cd62b0 Mon Sep 17 00:00:00 2001 From: Dominik Broj <19861998+thetric@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:33:33 +0100 Subject: [PATCH 286/989] chore: escape css using on board utilities (#1851) --- lib/features/replace-preview/BpmnReplacePreview.js | 2 +- package-lock.json | 1 - package.json | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/features/replace-preview/BpmnReplacePreview.js b/lib/features/replace-preview/BpmnReplacePreview.js index 92f6c457aa..1b3f20a024 100644 --- a/lib/features/replace-preview/BpmnReplacePreview.js +++ b/lib/features/replace-preview/BpmnReplacePreview.js @@ -2,7 +2,7 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import inherits from 'inherits-browser'; -import cssEscape from 'css.escape'; +import { escapeCSS as cssEscape } from 'diagram-js/lib/util/EscapeUtil'; import { assign, diff --git a/package-lock.json b/package-lock.json index e408a0b840..49ce6a7d13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", - "css.escape": "^1.5.1", "diagram-js": "^11.9.1", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", diff --git a/package.json b/package.json index 5fa382be86..387b6a6931 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,6 @@ }, "dependencies": { "bpmn-moddle": "^8.0.0", - "css.escape": "^1.5.1", "diagram-js": "^11.9.1", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", From 54bfb00ec699b7958d4c5c69ac1f55765b0d05f5 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Fri, 24 Feb 2023 12:29:48 +0100 Subject: [PATCH 287/989] feat: add root elements to definitions for updates --- CHANGELOG.md | 2 + .../behavior/RootElementReferenceBehavior.js | 14 +- .../RootElementReferenceBehavior.bpmn | 36 +- .../RootElementReferenceBehaviorSpec.js | 376 ++++++++++++++++++ 4 files changed, 413 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd2d695ef2..29095e0f87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +* `FEAT`: add root elements to definitions when provided via `modeling#update(Moddle)Properties` + ## 11.4.1 * `FIX`: correct redo triggering on international keyboard layouts ([#1842](https://github.com/bpmn-io/bpmn-js/issues/1842)) diff --git a/lib/features/modeling/behavior/RootElementReferenceBehavior.js b/lib/features/modeling/behavior/RootElementReferenceBehavior.js index 01e3b7c270..cc5625b562 100644 --- a/lib/features/modeling/behavior/RootElementReferenceBehavior.js +++ b/lib/features/modeling/behavior/RootElementReferenceBehavior.js @@ -87,8 +87,12 @@ export default function RootElementReferenceBehavior( } // create shape - this.executed('shape.create', function(context) { - var shape = context.shape; + this.executed([ + 'shape.create', + 'element.updateProperties', + 'element.updateModdleProperties' + ], function(context) { + var shape = context.shape || context.element; if (!canHaveRootElementReference(shape)) { return; @@ -108,7 +112,11 @@ export default function RootElementReferenceBehavior( } }, true); - this.reverted('shape.create', function(context) { + this.reverted([ + 'shape.create', + 'element.updateProperties', + 'element.updateModdleProperties' + ], function(context) { var addedRootElement = context.addedRootElement; if (!addedRootElement) { 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 814402c062..086f323a42 100644 --- a/test/spec/features/modeling/behavior/RootElementReferenceBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/RootElementReferenceBehaviorSpec.js @@ -189,6 +189,204 @@ describe('features/modeling - root element reference behavior', function() { }); + 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); + })); + + }); + }); @@ -316,6 +514,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); + })); + }); + }); }); }); From ac47aa4b24abffc72c2bb7deb783bbcc25c503b4 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Mon, 27 Feb 2023 08:56:32 +0100 Subject: [PATCH 288/989] chore: update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29095e0f87..24d5458138 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 11.5.0 + * `FEAT`: add root elements to definitions when provided via `modeling#update(Moddle)Properties` ## 11.4.1 From cc6a40aa69f74cef991e59d851ca89531508d4a8 Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Mon, 27 Feb 2023 08:59:46 +0100 Subject: [PATCH 289/989] 11.5.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 49ce6a7d13..66f439d018 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.4.1", + "version": "11.5.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.4.1", + "version": "11.5.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 387b6a6931..219d1fa28c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.4.1", + "version": "11.5.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 813e3bd4e67d0d8abad7344153251f9a7eb346ab Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 2 Mar 2023 10:10:48 +0100 Subject: [PATCH 290/989] feat: add typescript test infrastructure --- package-lock.json | 20 ++++++++++++++++++++ package.json | 7 +++++-- tsconfig.json | 8 ++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 tsconfig.json diff --git a/package-lock.json b/package-lock.json index 66f439d018..241e56bbaf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,6 +61,7 @@ "rollup-plugin-license": "^2.9.1", "sinon": "^15.0.0", "sinon-chai": "^3.7.0", + "typescript": "^4.9.5", "webpack": "^5.74.0" } }, @@ -15009,6 +15010,19 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", @@ -27732,6 +27746,12 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, "ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", diff --git a/package.json b/package.json index 219d1fa28c..dd7ac94e1f 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,11 @@ "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 test:types distro test:distro", "lint": "eslint .", "format": "run-s format:markdown 'lint -- --fix'", "format:markdown": "remark . -qo", @@ -24,6 +25,7 @@ "distro": "node tasks/build-distro.js", "collect-translations": "cross-env COLLECT_TRANSLATIONS=1 npm test", "test:distro": "node tasks/test-distro.js", + "test:types": "tsc", "postversion": "run-s distro test:distro", "prepare": "run-s distro" }, @@ -96,6 +98,7 @@ "rollup-plugin-license": "^2.9.1", "sinon": "^15.0.0", "sinon-chai": "^3.7.0", + "typescript": "^4.9.5", "webpack": "^5.74.0" }, "dependencies": { diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000000..e865797116 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,8 @@ +{ + "include": [ + "./lib/**/*.spec.ts" + ], + "compilerOptions": { + "noEmit": true + } +} \ No newline at end of file From 7e95f1d50726e130cd8392e84f4309364d11c056 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 6 Mar 2023 14:37:38 +0100 Subject: [PATCH 291/989] deps: update to diagram-js@11.10.0 --- package-lock.json | 42 +++++++++++++++--------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index 241e56bbaf..ed5ba6cabe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", - "diagram-js": "^11.9.1", + "diagram-js": "^11.10.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3118,11 +3118,6 @@ "node": ">=4.8" } }, - "node_modules/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/custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", @@ -3388,14 +3383,13 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.9.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.9.1.tgz", - "integrity": "sha512-qhqNSCq1k4ftHMJy0czNPlA5rFyccv/TakXrDYOtSpdrPJ0zHqWzZdw9/Of5UpixxPsMkoeu6U7Ox1sXLKRp3Q==", + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.10.0.tgz", + "integrity": "sha512-pUtKczdLE6tbE0mzvF7izF3UIbEBlWKPkCskVUFME7s1VPS7qzJRn4KvIDTHNOS9lzEA4O7mnD1dl7I8s5MGoA==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", - "css.escape": "^1.5.1", - "didi": "^9.0.0", + "didi": "^9.0.2", "hammerjs": "^2.0.1", "inherits-browser": "^0.1.0", "min-dash": "^4.0.0", @@ -3418,9 +3412,9 @@ } }, "node_modules/didi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.0.tgz", - "integrity": "sha512-bOZ7WAah3t8TxKV81pbIivHjWyABot49YXG1M3QztnUlZDHz3MRNJ1nZO87JbqrkqNI/2GR4ncHfXdGIP9LX+w==" + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.2.tgz", + "integrity": "sha512-q2+aj+lnJcUweV7A9pdUrwFr4LHVmRPwTmQLtHPFz4aT7IBoryN6Iy+jmFku+oIzr5ebBkvtBCOb87+dJhb7bg==" }, "node_modules/diff": { "version": "5.0.0", @@ -18840,11 +18834,6 @@ "which": "^1.2.9" } }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, "custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", @@ -19046,14 +19035,13 @@ "dev": true }, "diagram-js": { - "version": "11.9.1", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.9.1.tgz", - "integrity": "sha512-qhqNSCq1k4ftHMJy0czNPlA5rFyccv/TakXrDYOtSpdrPJ0zHqWzZdw9/Of5UpixxPsMkoeu6U7Ox1sXLKRp3Q==", + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.10.0.tgz", + "integrity": "sha512-pUtKczdLE6tbE0mzvF7izF3UIbEBlWKPkCskVUFME7s1VPS7qzJRn4KvIDTHNOS9lzEA4O7mnD1dl7I8s5MGoA==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", - "css.escape": "^1.5.1", - "didi": "^9.0.0", + "didi": "^9.0.2", "hammerjs": "^2.0.1", "inherits-browser": "^0.1.0", "min-dash": "^4.0.0", @@ -19073,9 +19061,9 @@ } }, "didi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.0.tgz", - "integrity": "sha512-bOZ7WAah3t8TxKV81pbIivHjWyABot49YXG1M3QztnUlZDHz3MRNJ1nZO87JbqrkqNI/2GR4ncHfXdGIP9LX+w==" + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.2.tgz", + "integrity": "sha512-q2+aj+lnJcUweV7A9pdUrwFr4LHVmRPwTmQLtHPFz4aT7IBoryN6Iy+jmFku+oIzr5ebBkvtBCOb87+dJhb7bg==" }, "diff": { "version": "5.0.0", diff --git a/package.json b/package.json index dd7ac94e1f..159439f678 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ }, "dependencies": { "bpmn-moddle": "^8.0.0", - "diagram-js": "^11.9.1", + "diagram-js": "^11.10.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From ab130b0d1f8540114648f217bc0f8a3268392c5e Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 6 Mar 2023 11:37:33 +0100 Subject: [PATCH 292/989] feat: add type declarations for viewer and modeler Related to #1829 --- lib/BaseModeler.d.ts | 5 + lib/BaseModeler.js | 34 ++-- lib/BaseModeler.spec.ts | 9 + lib/BaseViewer.d.ts | 366 ++++++++++++++++++++++++++++++++++++ lib/BaseViewer.js | 256 ++++++++++++++----------- lib/BaseViewer.spec.ts | 155 +++++++++++++++ lib/Modeler.d.ts | 15 ++ lib/Modeler.js | 31 +-- lib/Modeler.spec.ts | 11 ++ lib/NavigatedViewer.d.ts | 3 + lib/NavigatedViewer.js | 7 +- lib/NavigatedViewer.spec.ts | 9 + lib/Viewer.d.ts | 3 + lib/Viewer.js | 10 +- lib/Viewer.spec.ts | 9 + 15 files changed, 761 insertions(+), 162 deletions(-) create mode 100644 lib/BaseModeler.d.ts create mode 100644 lib/BaseModeler.spec.ts create mode 100644 lib/BaseViewer.d.ts create mode 100644 lib/BaseViewer.spec.ts create mode 100644 lib/Modeler.d.ts create mode 100644 lib/Modeler.spec.ts create mode 100644 lib/NavigatedViewer.d.ts create mode 100644 lib/NavigatedViewer.spec.ts create mode 100644 lib/Viewer.d.ts create mode 100644 lib/Viewer.spec.ts diff --git a/lib/BaseModeler.d.ts b/lib/BaseModeler.d.ts new file mode 100644 index 0000000000..d46fd404ca --- /dev/null +++ b/lib/BaseModeler.d.ts @@ -0,0 +1,5 @@ +import BaseViewer from "./BaseViewer"; + +export type Moddle = Object; + +export default class BaseModeler extends BaseViewer {} \ No newline at end of file diff --git a/lib/BaseModeler.js b/lib/BaseModeler.js index cc0c551d00..398d65dca7 100644 --- a/lib/BaseModeler.js +++ b/lib/BaseModeler.js @@ -6,21 +6,19 @@ import BaseViewer from './BaseViewer'; /** - * @typedef { import('didi').ModuleDeclaration } Module + * @typedef {import('./BaseViewer').BaseModelerOptions} BaseModelerOptions + * @typedef {import('./BaseViewer').ModdleElement} ModdleElement + * @typedef {import('./BaseViewer').ModdleElementsById} ModdleElementsById + * + * @typedef {import('.').Moddle} Moddle */ /** * A base modeler for BPMN 2.0 diagrams. * - * Have a look at {@link Modeler} for a bundle that includes actual features. + * See {@link Modeler} for a fully-featured modeler. * - * @param {Object} [options] configuration options to pass to the viewer - * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body. - * @param {string|number} [options.width] the width of the viewer - * @param {string|number} [options.height] the height of the viewer - * @param {Object} [options.moddleExtensions] extension packages to provide - * @param {Module[]} [options.modules] a list of modules to override the default modules - * @param {Module[]} [options.additionalModules] a list of modules to use with the default modules + * @param {BaseModelerOptions} [options] The options to configure the modeler. */ export default function BaseModeler(options) { BaseViewer.call(this, options); @@ -41,27 +39,27 @@ inherits(BaseModeler, BaseViewer); /** - * Create a moddle instance, attaching ids to it. + * Create a moddle instance, attaching IDs to it. + * + * @param {BaseModelerOptions} options * - * @param {Object} options + * @return {Moddle} */ BaseModeler.prototype._createModdle = function(options) { var moddle = BaseViewer.prototype._createModdle.call(this, options); - // attach ids to moddle to be able to track - // and validated ids in the BPMN 2.0 XML document - // tree + // attach ids to moddle to be able to track and validated ids in the BPMN 2.0 + // XML document tree moddle.ids = new Ids([ 32, 36, 1 ]); return moddle; }; /** - * Collect ids processed during parsing of the - * definitions object. + * Collect IDs processed during parsing of the definitions object. * * @param {ModdleElement} definitions - * @param {Context} context + * @param {ModdleElementsById} elementsById */ BaseModeler.prototype._collectIds = function(definitions, elementsById) { @@ -73,6 +71,6 @@ BaseModeler.prototype._collectIds = function(definitions, elementsById) { ids.clear(); for (id in elementsById) { - ids.claim(id, elementsById[id]); + ids.claim(id, elementsById[ id ]); } }; diff --git a/lib/BaseModeler.spec.ts b/lib/BaseModeler.spec.ts new file mode 100644 index 0000000000..60bb6df8b1 --- /dev/null +++ b/lib/BaseModeler.spec.ts @@ -0,0 +1,9 @@ +import BaseModeler from './BaseModeler'; + +import { testViewer } from './BaseViewer.spec'; + +const modeler = new BaseModeler({ + container: 'container' +}); + +testViewer(modeler); \ No newline at end of file diff --git a/lib/BaseViewer.d.ts b/lib/BaseViewer.d.ts new file mode 100644 index 0000000000..d6663aa2ef --- /dev/null +++ b/lib/BaseViewer.d.ts @@ -0,0 +1,366 @@ +import { ModuleDeclaration } from "didi"; + +import Diagram from 'diagram-js/lib/Diagram'; + +import { + Event, + EventCallback +} from 'diagram-js/lib/core/EventBus'; + +export type ModdleExtension = Object; + +export type ModdleExtensions = { + [key: string]: ModdleExtension; +}; + +export type BaseViewerOptions = { + width?: number|string; + height?: number|string; + position?: string; + container?: string|HTMLElement; + moddleExtensions?: ModdleExtensions; + additionalModules?: ModuleDeclaration[]; +}; + +export type ModdleElement = Object; + +export type ModdleElementsById = { + [id: string]: ModdleElement; +}; + +export type ImportXMLResult = { + + /** + * The warnings produced when parsing the XML. + */ + warnings: string[]; +}; + +export type ImportXMLError = ImportXMLResult & Error; + +export type ImportDefinitionsResult = ImportXMLResult; + +export type ImportDefinitionsError = ImportXMLError; + +export type OpenResult = ImportXMLResult; + +export type OpenError = ImportXMLError; + +export type SaveXMLOptions = { + + /** + * Whether to format the XML. Defaults to `false`. + */ + format?: boolean; + + /** + * Whether to include the preamble. Defaults to `true`. + */ + preamble?: boolean; +}; + +export type SaveXMLResult = { + + /** + * The saved XML. + */ + xml?: string; + + /** + * An error thrown when saving the XML. + */ + error?: Error; +}; + +export type SaveSVGResult = { + svg: string; +}; + +declare namespace Events { + + /** + * A `import.parse.start` event. + */ + export type ImportParseStart = { + + /** + * The XML that is to be parsed. + */ + xml: string; + } & Event; + + /** + * A `import.parse.complete` event. + */ + export type ImportParseComplete = { + + /** + * An error thrown when parsing the XML. + */ + error?: ImportXMLError; + + /** + * The definitions model element. + */ + definitions?: ModdleElement; + + /** + * The model elements by ID. + */ + elementsById?: ModdleElementsById; + + /** + * The referenced model elements. + */ + references?: ModdleElement[]; + + /** + * The warnings produced when parsing the XML. + */ + warnings: string[]; + } & Event; + + /** + * A `import.done` event. + */ + export type ImportDone = { + + /** + * An error thrown when parsing the XML. + */ + error?: ImportXMLError; + + /** + * The warnings produced when parsing the XML. + */ + warnings: string[]; + } & Event; + + /** + * A `saveXML.start` event. + */ + export type SaveXMLStart = { + + /** + * The definitions model element. + */ + definitions: ModdleElement; + } & Event; + + /** + * A `saveXML.done` event. + */ + export type SaveXMLDone = SaveXMLResult & Event; + + /** + * A `saveSVG.done` event. + */ + export type SaveSVGDone = { + + /** + * An error thrown when saving the SVG. + */ + error?: Error; + + /** + * The saved SVG. + */ + svg: string; + } & Event; +} + +export default class BaseViewer extends Diagram { + + /** + * The constructor. + * + * @param options The options to configure the viewer. + */ + constructor(options?: BaseViewerOptions); + + /** + * Parse and render a BPMN 2.0 diagram. + * + * Once finished the viewer reports back the result to the + * provided callback function with (err, warnings). + * + * ## Life-Cycle Events + * + * During import the viewer will fire life-cycle events: + * + * * import.parse.start (about to read model from XML) + * * import.parse.complete (model read; may have worked or not) + * * import.render.start (graphical import start) + * * import.render.complete (graphical import finished) + * * import.done (everything done) + * + * You can use these events to hook into the life-cycle. + * + * @throws An error thrown during the import of the XML. + * + * @param xml The BPMN 2.0 XML to be imported. + * @param bpmnDiagram The optional diagram or Id of the BPMN diagram to open. + * + * @return A promise resolving with warnings that were produced during the import. + */ + importXML(xml: string, bpmnDiagram?: ModdleElement | string): Promise; + + /** + * Import parsed definitions and render a BPMN 2.0 diagram. + * + * Once finished the viewer reports back the result to the + * provided callback function with (err, warnings). + * + * ## Life-Cycle Events + * + * During import the viewer will fire life-cycle events: + * + * * import.render.start (graphical import start) + * * import.render.complete (graphical import finished) + * + * You can use these events to hook into the life-cycle. + * + * @throws An error thrown during the import of the definitions. + * + * @param definitions The definitions. + * @param bpmnDiagram The optional diagram or ID of the BPMN diagram to open. + * + * @return A promise resolving with warnings that were produced during the import. + */ + importDefinitions(definitions: ModdleElement, bpmnDiagram?: ModdleElement | string): Promise; + + /** + * Open diagram of previously imported XML. + * + * Once finished the viewer reports back the result to the + * provided callback function with (err, warnings). + * + * ## Life-Cycle Events + * + * During switch the viewer will fire life-cycle events: + * + * * import.render.start (graphical import start) + * * import.render.complete (graphical import finished) + * + * You can use these events to hook into the life-cycle. + * + * @throws An error thrown during opening. + * + * @param bpmnDiagramOrId The diagram or Id of the BPMN diagram to open. + * + * @return A promise resolving with warnings that were produced during opening. + */ + open(bpmnDiagramOrId: ModdleElement | string): Promise; + + /** + * Export the currently displayed BPMN 2.0 diagram as + * a BPMN 2.0 XML document. + * + * ## Life-Cycle Events + * + * During XML saving the viewer will fire life-cycle events: + * + * * saveXML.start (before serialization) + * * saveXML.serialized (after xml generation) + * * saveXML.done (everything done) + * + * You can use these events to hook into the life-cycle. + * + * @throws An error thrown during export. + * + * @param options The options. + * + * @return A promise resolving with the XML. + */ + saveXML(options: SaveXMLOptions): Promise; + + /** + * Export the currently displayed BPMN 2.0 diagram as + * an SVG image. + * + * ## Life-Cycle Events + * + * During SVG saving the viewer will fire life-cycle events: + * + * * saveSVG.start (before serialization) + * * saveSVG.done (everything done) + * + * You can use these events to hook into the life-cycle. + * + * @throws An error thrown during export. + * + * @return A promise resolving with the SVG. + */ + saveSVG(): Promise; + + /** + * Return modules to instantiate with. + * + * @return The modules. + */ + getModules(): ModuleDeclaration[]; + + /** + * Remove all drawn elements from the viewer. + * + * After calling this method the viewer can still be reused for opening another + * diagram. + */ + clear(): void; + + /** + * Destroy the viewer instance and remove all its remainders from the document + * tree. + */ + destroy(): void; + + /** + * Register an event listener. + * + * Remove a previously added listener via {@link BaseViewer#off}. + * + * @param events The event(s) to listen to. + * @param callback The callback. + * @param that Value of `this` the callback will be called with. + */ + on(events: string | string[], callback: EventCallback, that?: any): void; + + /** + * Register an event listener. + * + * Remove a previously added listener via {@link BaseViewer#off}. + * + * @param events The event(s) to listen to. + * @param priority The priority with which to listen. + * @param callback The callback. + * @param that Value of `this` the callback will be called with. + */ + on(events: string | string[], priority: number, callback: EventCallback, that?: any): void; + + /** + * Remove an event listener. + * + * @param events The event(s). + * @param callback The callback. + */ + off(events: string | string[], callback?: EventCallback): void; + + /** + * Attach the viewer to an HTML element. + * + * @param parentNode The parent node to attach to. + */ + attachTo(parentNode: HTMLElement): void; + + /** + * Get the definitions model element. + * + * @returns The definitions model element. + */ + getDefinitions(): ModdleElement | undefined; + + /** + * Detach the viewer. + */ + detach(): void; +} \ No newline at end of file diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index 9c858261cb..1ffe5517f9 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -37,7 +37,20 @@ import { /** - * @typedef { import('didi').ModuleDeclaration } Module + * @typedef {import('didi').ModuleDeclaration} ModuleDeclaration + * + * @typedef {import('./BaseViewer').BaseModelerOptions} BaseModelerOptions + * @typedef {import('./BaseViewer').ModdleElement} ModdleElement + * @typedef {import('./BaseViewer').ImportXMLResult} ImportXMLResult + * @typedef {import('./BaseViewer').ImportXMLError} ImportXMLError + * @typedef {import('./BaseViewer').ImportDefinitionsResult} ImportDefinitionsResult + * @typedef {import('./BaseViewer').ImportDefinitionsError} ImportDefinitionsError + * @typedef {import('./BaseViewer').ModdleElement} ModdleElement + * @typedef {import('./BaseViewer').ModdleElementsById} ModdleElementsById + * @typedef {import('./BaseViewer').OpenResult} OpenResult + * @typedef {import('./BaseViewer').OpenError} OpenError + * @typedef {import('./BaseViewer').SaveXMLOptions} SaveXMLOptions + * @typedef {import('./BaseViewer').SaveXMLResult} SaveXMLResult */ /** @@ -46,20 +59,20 @@ import { * Have a look at {@link Viewer}, {@link NavigatedViewer} or {@link Modeler} for * bundles that include actual features. * - * @param {Object} [options] configuration options to pass to the viewer - * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body. - * @param {string|number} [options.width] the width of the viewer - * @param {string|number} [options.height] the height of the viewer - * @param {Object} [options.moddleExtensions] extension packages to provide - * @param {Module[]} [options.modules] a list of modules to override the default modules - * @param {Module[]} [options.additionalModules] a list of modules to use with the default modules + * @param {BaseModelerOptions} [options] The options to configure the viewer. */ export default function BaseViewer(options) { + /** + * @type {BaseModelerOptions} + */ options = assign({}, DEFAULT_OPTIONS, options); this._moddle = this._createModdle(options); + /** + * @type {HTMLElement} + */ this._container = this._createContainer(options); /* */ @@ -73,22 +86,6 @@ export default function BaseViewer(options) { inherits(BaseViewer, Diagram); -/** -* The importXML result. -* -* @typedef {Object} ImportXMLResult -* -* @property {Array} warnings -*/ - -/** -* The importXML error. -* -* @typedef {Error} ImportXMLError -* -* @property {Array} warnings -*/ - /** * Parse and render a BPMN 2.0 diagram. * @@ -99,7 +96,7 @@ inherits(BaseViewer, Diagram); * * During import the viewer will fire life-cycle events: * - * * import.parse.start (about to read model from xml) + * * import.parse.start (about to read model from XML) * * import.parse.complete (model read; may have worked or not) * * import.render.start (graphical import start) * * import.render.complete (graphical import finished) @@ -107,10 +104,18 @@ inherits(BaseViewer, Diagram); * * You can use these events to hook into the life-cycle. * - * @param {string} xml the BPMN 2.0 xml - * @param {ModdleElement|string} [bpmnDiagram] BPMN diagram or id of diagram to render (if not provided, the first one will be rendered) + * @throws {ImportXMLError} An error thrown during the import of the XML. + * + * @fires BaseViewer#ImportParseStart + * @fires BaseViewer#ImportParseComplete + * @fires Importer#ImportRenderStart + * @fires Importer#ImportRenderComplete + * @fires BaseViewer#ImportDone + * + * @param {string} xml The BPMN 2.0 XML to be imported. + * @param {ModdleElement|string} [bpmnDiagram] The optional diagram or Id of the BPMN diagram to open. * - * Returns {Promise} + * @return {Promise} A promise resolving with warnings that were produced during the import. */ BaseViewer.prototype.importXML = wrapForCompatibility(async function importXML(xml, bpmnDiagram) { @@ -146,6 +151,14 @@ BaseViewer.prototype.importXML = wrapForCompatibility(async function importXML(x // hook in pre-parse listeners + // allow xml manipulation + + /** + * A `import.parse.start` event. + * + * @event BaseViewer#ImportParseStart + * @type {Object} + * @property {string} xml The XML that is to be parsed. + */ xml = this._emit('import.parse.start', { xml: xml }) || xml; let parseResult; @@ -168,6 +181,18 @@ BaseViewer.prototype.importXML = wrapForCompatibility(async function importXML(x // hook in post parse listeners + // allow definitions manipulation + + /** + * A `import.parse.complete` event. + * + * @event BaseViewer#ImportParseComplete + * @type {Object} + * @property {Error|null} error An error thrown when parsing the XML. + * @property {ModdleElement} definitions The definitions model element. + * @property {ModdleElementsById} elementsById The model elements by ID. + * @property {ModdleElement[]} references The referenced model elements. + * @property {string[]} warnings The warnings produced when parsing the XML. + */ definitions = this._emit('import.parse.complete', ParseCompleteEvent({ error: null, definitions: definitions, @@ -180,6 +205,14 @@ BaseViewer.prototype.importXML = wrapForCompatibility(async function importXML(x aggregatedWarnings = aggregatedWarnings.concat(importResult.warnings); + /** + * A `import.parse.complete` event. + * + * @event BaseViewer#ImportDone + * @type {Object} + * @property {ImportXMLError|null} error An error thrown during import. + * @property {string[]} warnings The warnings. + */ this._emit('import.done', { error: null, warnings: aggregatedWarnings }); return { warnings: aggregatedWarnings }; @@ -196,21 +229,6 @@ BaseViewer.prototype.importXML = wrapForCompatibility(async function importXML(x } }); -/** -* The importDefinitions result. -* -* @typedef {Object} ImportDefinitionsResult -* -* @property {Array} warnings -*/ - -/** -* The importDefinitions error. -* -* @typedef {Error} ImportDefinitionsError -* -* @property {Array} warnings -*/ /** * Import parsed definitions and render a BPMN 2.0 diagram. @@ -227,10 +245,12 @@ BaseViewer.prototype.importXML = wrapForCompatibility(async function importXML(x * * You can use these events to hook into the life-cycle. * - * @param {ModdleElement} definitions parsed BPMN 2.0 definitions - * @param {ModdleElement|string} [bpmnDiagram] BPMN diagram or id of diagram to render (if not provided, the first one will be rendered) + * @throws {ImportDefinitionsError} An error thrown during the import of the definitions. * - * Returns {Promise} + * @param {ModdleElement} definitions The definitions. + * @param {ModdleElement|string} [bpmnDiagram] The optional diagram or ID of the BPMN diagram to open. + * + * @return {Promise} A promise resolving with warnings that were produced during the import. */ BaseViewer.prototype.importDefinitions = wrapForCompatibility(async function importDefinitions(definitions, bpmnDiagram) { this._setDefinitions(definitions); @@ -239,21 +259,6 @@ BaseViewer.prototype.importDefinitions = wrapForCompatibility(async function imp return { warnings: result.warnings }; }); -/** - * The open result. - * - * @typedef {Object} OpenResult - * - * @property {Array} warnings - */ - -/** -* The open error. -* -* @typedef {Error} OpenError -* -* @property {Array} warnings -*/ /** * Open diagram of previously imported XML. @@ -270,9 +275,11 @@ BaseViewer.prototype.importDefinitions = wrapForCompatibility(async function imp * * You can use these events to hook into the life-cycle. * - * @param {string|ModdleElement} [bpmnDiagramOrId] id or the diagram to open + * @throws {OpenError} An error thrown during opening. + * + * @param {ModdleElement|string} bpmnDiagramOrId The diagram or Id of the BPMN diagram to open. * - * Returns {Promise} + * @return {Promise} A promise resolving with warnings that were produced during opening. */ BaseViewer.prototype.open = wrapForCompatibility(async function open(bpmnDiagramOrId) { @@ -313,14 +320,6 @@ BaseViewer.prototype.open = wrapForCompatibility(async function open(bpmnDiagram return { warnings }; }); -/** - * The saveXML result. - * - * @typedef {Object} SaveXMLResult - * - * @property {string} xml - */ - /** * Export the currently displayed BPMN 2.0 diagram as * a BPMN 2.0 XML document. @@ -335,11 +334,14 @@ BaseViewer.prototype.open = wrapForCompatibility(async function open(bpmnDiagram * * You can use these events to hook into the life-cycle. * - * @param {Object} [options] export options - * @param {boolean} [options.format=false] output formatted XML - * @param {boolean} [options.preamble=true] output preamble + * @throws {Error} An error thrown during export. + * + * @fires BaseViewer#SaveXMLStart + * @fires BaseViewer#SaveXMLDone * - * Returns {Promise} + * @param {SaveXMLOptions} [options] The options. + * + * @return {Promise} A promise resolving with the XML. */ BaseViewer.prototype.saveXML = wrapForCompatibility(async function saveXML(options) { @@ -354,6 +356,14 @@ BaseViewer.prototype.saveXML = wrapForCompatibility(async function saveXML(optio } // allow to fiddle around with definitions + + /** + * A `saveXML.start` event. + * + * @event BaseViewer#SaveXMLStart + * @type {Object} + * @property {ModdleElement} definitions The definitions model element. + */ definitions = this._emit('saveXML.start', { definitions }) || definitions; @@ -370,6 +380,14 @@ BaseViewer.prototype.saveXML = wrapForCompatibility(async function saveXML(optio const result = error ? { error } : { xml }; + /** + * A `saveXML.done` event. + * + * @event BaseViewer#SaveXMLDone + * @type {Object} + * @property {Error} [error] An error thrown when saving the XML. + * @property {string} [xml] The saved XML. + */ this._emit('saveXML.done', result); if (error) { @@ -379,13 +397,6 @@ BaseViewer.prototype.saveXML = wrapForCompatibility(async function saveXML(optio return result; }); -/** - * The saveSVG result. - * - * @typedef {Object} SaveSVGResult - * - * @property {string} svg - */ /** * Export the currently displayed BPMN 2.0 diagram as @@ -400,11 +411,13 @@ BaseViewer.prototype.saveXML = wrapForCompatibility(async function saveXML(optio * * You can use these events to hook into the life-cycle. * - * @param {Object} [options] + * @throws {Error} An error thrown during export. * - * Returns {Promise} + * @fires BaseViewer#SaveSVGDone + * + * @return {Promise} A promise resolving with the SVG. */ -BaseViewer.prototype.saveSVG = wrapForCompatibility(async function saveSVG(options = {}) { +BaseViewer.prototype.saveSVG = wrapForCompatibility(async function saveSVG() { this._emit('saveSVG.start'); let svg, err; @@ -433,6 +446,14 @@ BaseViewer.prototype.saveSVG = wrapForCompatibility(async function saveSVG(optio err = e; } + /** + * A `saveSVG.done` event. + * + * @event BaseViewer#SaveSVGDone + * @type {Object} + * @property {Error} [error] An error thrown when saving the SVG. + * @property {string} [svg] The saved SVG. + */ this._emit('saveSVG.done', { error: err, svg: svg @@ -484,21 +505,17 @@ BaseViewer.prototype._setDefinitions = function(definitions) { /** * Return modules to instantiate with. * - * @param {any} options the instance got created with - * - * @return {Module[]} + * @return {ModuleDeclaration[]} The modules. */ -BaseViewer.prototype.getModules = function(options) { +BaseViewer.prototype.getModules = function() { return this._modules; }; /** * Remove all drawn elements from the viewer. * - * After calling this method the viewer can still - * be reused for opening another diagram. - * - * @method BaseViewer#clear + * After calling this method the viewer can still be reused for opening another + * diagram. */ BaseViewer.prototype.clear = function() { if (!this.getDefinitions()) { @@ -512,8 +529,8 @@ BaseViewer.prototype.clear = function() { }; /** - * Destroy the viewer instance and remove all its - * remainders from the document tree. + * Destroy the viewer instance and remove all its remainders from the document + * tree. */ BaseViewer.prototype.destroy = function() { @@ -525,29 +542,34 @@ BaseViewer.prototype.destroy = function() { }; /** - * Register an event listener + * Register an event listener. * - * Remove a previously added listener via {@link #off(event, callback)}. + * Remove an event listener via {@link BaseViewer#off}. * - * @param {string} event - * @param {number} [priority] - * @param {Function} callback - * @param {Object} [that] + * @param {string|string[]} events The event(s) to listen to. + * @param {number} [priority] The priority with which to listen. + * @param {EventCallback} callback The callback. + * @param {*} [that] Value of `this` the callback will be called with. */ -BaseViewer.prototype.on = function(event, priority, callback, target) { - return this.get('eventBus').on(event, priority, callback, target); +BaseViewer.prototype.on = function(events, priority, callback, that) { + return this.get('eventBus').on(events, priority, callback, that); }; /** - * De-register an event listener + * Remove an event listener. * - * @param {string} event - * @param {Function} callback + * @param {string|string[]} events The event(s). + * @param {Function} [callback] The callback. */ -BaseViewer.prototype.off = function(event, callback) { - this.get('eventBus').off(event, callback); +BaseViewer.prototype.off = function(events, callback) { + this.get('eventBus').off(events, callback); }; +/** + * Attach the viewer to an HTML element. + * + * @param {HTMLElement} parentNode The parent node to attach to. + */ BaseViewer.prototype.attachTo = function(parentNode) { if (!parentNode) { @@ -574,10 +596,20 @@ BaseViewer.prototype.attachTo = function(parentNode) { this.get('canvas').resized(); }; +/** + * Get the definitions model element. + * + * @returns {ModdleElement} The definitions model element. + */ BaseViewer.prototype.getDefinitions = function() { return this._definitions; }; +/** + * Detach the viewer. + * + * @fires BaseViewer#DetachEvent + */ BaseViewer.prototype.detach = function() { const container = this._container, @@ -587,6 +619,12 @@ BaseViewer.prototype.detach = function() { return; } + /** + * A `detach` event. + * + * @event BaseViewer#DetachEvent + * @type {Object} + */ this._emit('detach', {}); parentNode.removeChild(container); @@ -624,7 +662,7 @@ BaseViewer.prototype._init = function(container, moddle, options) { * @param {string} type * @param {Object} event * - * @return {Object} event processing result (if any) + * @return {Object} The return value after calling all event listeners. */ BaseViewer.prototype._emit = function(type, event) { return this.get('eventBus').fire(type, event); diff --git a/lib/BaseViewer.spec.ts b/lib/BaseViewer.spec.ts new file mode 100644 index 0000000000..6690a8efac --- /dev/null +++ b/lib/BaseViewer.spec.ts @@ -0,0 +1,155 @@ +import CommandStack from 'diagram-js/lib/command/CommandStack'; + +import { Event } from 'diagram-js/lib/core/EventBus'; + +import BaseViewer, { Events } from './BaseViewer'; + +import OverlaysModule from 'diagram-js/lib/features/overlays'; + +let viewer = new BaseViewer(); + +viewer = new BaseViewer({ + width: 100, + height: 100, + position: 'absolute', + container: 'container', + moddleExtensions: { + foo: {} + }, + additionalModules: [ + OverlaysModule + ] +}); + +testViewer(viewer); + +export function testViewer(viewer: BaseViewer) { + viewer.importXML('', 'BPMNDiagram_1'); + + viewer.importXML('') + .then(({ warnings }) => { + console.log(warnings); + }) + .catch(error => { + const { + message, + warnings + } = error; + + console.log(message, warnings); + }); + + viewer.importDefinitions({ $type: 'bpmn:Definitions' }, 'BPMNDiagram_1'); + + viewer.importDefinitions({ $type: 'bpmn:Definitions' }) + .then(({ warnings }) => { + console.log(warnings); + }) + .catch(error => { + const { + message, + warnings + } = error; + + console.log(message, warnings); + }); + + viewer.open('BPMNDiagram_1'); + + viewer.open({ $type: 'bpmn:BPMNDiagram' }) + .then(({ warnings }) => { + console.log(warnings); + }) + .catch(error => { + const { + message, + warnings + } = error; + + console.log(message, warnings); + }); + + viewer.saveXML({ format: true, preamble: false }) + .then(({ xml, error }) => { + if (error) { + console.log(error); + } else { + console.log(xml); + } + }) + .catch(error => { + console.log(error); + }); + + viewer.getModules(); + + viewer.clear(); + + viewer.destroy(); + + viewer.get('commandStack').undo(); + + viewer.invoke((commandStack: CommandStack) => commandStack.undo()); + + viewer.on('foo', () => console.log('foo')); + + viewer.on([ 'foo', 'bar' ], () => console.log('foo')); + + viewer.on('foo', 2000, () => console.log('foo')); + + viewer.on('foo', 2000, () => console.log('foo'), { foo: 'bar' }); + + viewer.off('foo', () => console.log('foo')); + + viewer.attachTo(document.createElement('div')); + + viewer.getDefinitions(); + + viewer.detach(); + + viewer.on('import.parse.start', ({ xml }) => { + console.log(xml); + }); + + viewer.on('import.parse.complete', ({ + error, + definitions, + elementsById, + references, + warnings + }) => { + if (error) { + console.error(error); + } + + if (warnings.length) { + warnings.forEach(warning => console.log(warning)); + } + + console.log(definitions, elementsById, references); + }); + + viewer.on('import.done', ({ error, warnings }) => { + if (error) { + console.error(error); + } + + if (warnings.length) { + warnings.forEach(warning => console.log(warning)); + } + }); + + viewer.on('saveXML.start', ({ definitions }) => { + console.log(definitions); + }); + + viewer.on('saveXML.done', ({ error, xml }) => { + if (error) { + console.error(error); + } else { + console.log(xml); + } + }); + + viewer.on('detach', () => {}); +} \ No newline at end of file diff --git a/lib/Modeler.d.ts b/lib/Modeler.d.ts new file mode 100644 index 0000000000..dffc13746b --- /dev/null +++ b/lib/Modeler.d.ts @@ -0,0 +1,15 @@ +import BaseModeler from "./BaseModeler"; + +import { ImportXMLResult } from "./BaseViewer"; + +export default class Modeler extends BaseModeler { + + /** + * Create a new diagram to start modeling. + * + * @throws An error thrown during the import of the XML. + * + * @return A promise resolving with warnings that were produced during the import. + */ + createDiagram(): Promise; +} \ No newline at end of file diff --git a/lib/Modeler.js b/lib/Modeler.js index 80dfd220aa..a5bdcf4e5e 100644 --- a/lib/Modeler.js +++ b/lib/Modeler.js @@ -62,7 +62,8 @@ var initialDiagram = /** - * @typedef { import('didi').ModuleDeclaration } Module + * @typedef {import('./BaseViewer').BaseModelerOptions} BaseModelerOptions + * @typedef {import('./BaseViewer').ImportXMLResult} ImportXMLResult */ /** @@ -129,13 +130,7 @@ var initialDiagram = * var bpmnModeler = new Modeler({ additionalModules: [ overrideModule ]}); * ``` * - * @param {Object} [options] configuration options to pass to the viewer - * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body. - * @param {string|number} [options.width] the width of the viewer - * @param {string|number} [options.height] the height of the viewer - * @param {Object} [options.moddleExtensions] extension packages to provide - * @param {Module[]} [options.modules] a list of modules to override the default modules - * @param {Module[]} [options.additionalModules] a list of modules to use with the default modules + * @param {BaseModelerOptions} [options] The options to configure the modeler. */ export default function Modeler(options) { BaseModeler.call(this, options); @@ -147,26 +142,12 @@ inherits(Modeler, BaseModeler); Modeler.Viewer = Viewer; Modeler.NavigatedViewer = NavigatedViewer; -/** -* The createDiagram result. -* -* @typedef {Object} CreateDiagramResult -* -* @property {Array} warnings -*/ - -/** -* The createDiagram error. -* -* @typedef {Error} CreateDiagramError -* -* @property {Array} warnings -*/ - /** * Create a new diagram to start modeling. * - * Returns {Promise} + * @throws {ImportXMLError} An error thrown during the import of the XML. + * + * @return {Promise} A promise resolving with warnings that were produced during the import. */ Modeler.prototype.createDiagram = wrapForCompatibility(function createDiagram() { return this.importXML(initialDiagram); diff --git a/lib/Modeler.spec.ts b/lib/Modeler.spec.ts new file mode 100644 index 0000000000..b398d3acd4 --- /dev/null +++ b/lib/Modeler.spec.ts @@ -0,0 +1,11 @@ +import Modeler from './Modeler'; + +import { testViewer } from './BaseViewer.spec'; + +const modeler = new Modeler({ + container: 'container' +}); + +testViewer(modeler); + +modeler.createDiagram(); \ No newline at end of file diff --git a/lib/NavigatedViewer.d.ts b/lib/NavigatedViewer.d.ts new file mode 100644 index 0000000000..c63eb05db4 --- /dev/null +++ b/lib/NavigatedViewer.d.ts @@ -0,0 +1,3 @@ +import Viewer from "./Viewer"; + +export default class NavigatedViewer extends Viewer {} \ No newline at end of file diff --git a/lib/NavigatedViewer.js b/lib/NavigatedViewer.js index 7da2ded2ce..7417777b07 100644 --- a/lib/NavigatedViewer.js +++ b/lib/NavigatedViewer.js @@ -6,11 +6,14 @@ import KeyboardMoveModule from 'diagram-js/lib/navigation/keyboard-move'; import MoveCanvasModule from 'diagram-js/lib/navigation/movecanvas'; import ZoomScrollModule from 'diagram-js/lib/navigation/zoomscroll'; +/** + * @typedef { import('./BaseViewer').BaseViewerOptions } BaseViewerOptions + */ /** - * A viewer that includes mouse navigation facilities + * A viewer with mouse and keyboard navigation features. * - * @param {Object} options + * @param {BaseViewerOptions} [options] */ export default function NavigatedViewer(options) { Viewer.call(this, options); diff --git a/lib/NavigatedViewer.spec.ts b/lib/NavigatedViewer.spec.ts new file mode 100644 index 0000000000..01c86d3515 --- /dev/null +++ b/lib/NavigatedViewer.spec.ts @@ -0,0 +1,9 @@ +import NavigatedViewer from './NavigatedViewer'; + +import { testViewer } from './BaseViewer.spec'; + +const viewer = new NavigatedViewer({ + container: 'container' +}); + +testViewer(viewer); \ No newline at end of file diff --git a/lib/Viewer.d.ts b/lib/Viewer.d.ts new file mode 100644 index 0000000000..5aedc63f5a --- /dev/null +++ b/lib/Viewer.d.ts @@ -0,0 +1,3 @@ +import BaseViewer from "./BaseViewer"; + +export default class Viewer extends BaseViewer {} \ No newline at end of file diff --git a/lib/Viewer.js b/lib/Viewer.js index 0de7232a0c..7d976346ad 100644 --- a/lib/Viewer.js +++ b/lib/Viewer.js @@ -10,7 +10,7 @@ import BaseViewer from './BaseViewer'; /** - * @typedef { import('didi').ModuleDeclaration } Module + * @typedef { import('./BaseViewer').BaseViewerOptions } BaseViewerOptions */ /** @@ -52,13 +52,7 @@ import BaseViewer from './BaseViewer'; * bpmnViewer.importXML(...); * ``` * - * @param {Object} [options] configuration options to pass to the viewer - * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body. - * @param {string|number} [options.width] the width of the viewer - * @param {string|number} [options.height] the height of the viewer - * @param {Object} [options.moddleExtensions] extension packages to provide - * @param {Module[]} [options.modules] a list of modules to override the default modules - * @param {Module[]} [options.additionalModules] a list of modules to use with the default modules + * @param {BaseViewerOptions} [options] The options to configure the viewer. */ export default function Viewer(options) { BaseViewer.call(this, options); diff --git a/lib/Viewer.spec.ts b/lib/Viewer.spec.ts new file mode 100644 index 0000000000..51a63474b9 --- /dev/null +++ b/lib/Viewer.spec.ts @@ -0,0 +1,9 @@ +import Viewer from './Viewer'; + +import { testViewer } from './BaseViewer.spec'; + +const viewer = new Viewer({ + container: 'container' +}); + +testViewer(viewer); \ No newline at end of file From 083ed655ef4219f9c1235b891372c1cc9e7b812a Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 7 Mar 2023 11:58:27 +0100 Subject: [PATCH 293/989] deps: update to diagram-js@11.11.0 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ed5ba6cabe..61ddecb897 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", - "diagram-js": "^11.10.0", + "diagram-js": "^11.11.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3383,9 +3383,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.10.0.tgz", - "integrity": "sha512-pUtKczdLE6tbE0mzvF7izF3UIbEBlWKPkCskVUFME7s1VPS7qzJRn4KvIDTHNOS9lzEA4O7mnD1dl7I8s5MGoA==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.11.0.tgz", + "integrity": "sha512-+GJ6NPCihQBOqLKAjrXE+bQNYIhFjrCQgYHfPb22OcrYJ9k6vkTfJfG5PsyJ9P/AEIrXwTnrJAff/iKU1RgfAA==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", @@ -19035,9 +19035,9 @@ "dev": true }, "diagram-js": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.10.0.tgz", - "integrity": "sha512-pUtKczdLE6tbE0mzvF7izF3UIbEBlWKPkCskVUFME7s1VPS7qzJRn4KvIDTHNOS9lzEA4O7mnD1dl7I8s5MGoA==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.11.0.tgz", + "integrity": "sha512-+GJ6NPCihQBOqLKAjrXE+bQNYIhFjrCQgYHfPb22OcrYJ9k6vkTfJfG5PsyJ9P/AEIrXwTnrJAff/iKU1RgfAA==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", diff --git a/package.json b/package.json index 159439f678..500539d9e6 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ }, "dependencies": { "bpmn-moddle": "^8.0.0", - "diagram-js": "^11.10.0", + "diagram-js": "^11.11.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From 7a7ce12223609cca480decd091eb47d2c755c7fd Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Fri, 3 Mar 2023 18:11:52 +0100 Subject: [PATCH 294/989] chore(replace): remove replace logic (now supported upstream) --- CHANGELOG.md | 2 ++ lib/features/replace/BpmnReplace.js | 15 +++------------ 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24d5458138..9f880db3ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +* `CHORE`: use `diagram-js@11.11.0` built-in selection after replace feature ([#1857](https://github.com/bpmn-io/bpmn-js/pull/1857)) + ## 11.5.0 * `FEAT`: add root elements to definitions when provided via `modeling#update(Moddle)Properties` diff --git a/lib/features/replace/BpmnReplace.js b/lib/features/replace/BpmnReplace.js index 24678c523c..9c0fb47320 100644 --- a/lib/features/replace/BpmnReplace.js +++ b/lib/features/replace/BpmnReplace.js @@ -85,8 +85,7 @@ export default function BpmnReplace( moddleCopy, modeling, replace, - rules, - selection + rules ) { /** @@ -284,14 +283,7 @@ export default function BpmnReplace( newElement.x = element.x + (element.width - newElement.width) / 2; } - - newElement = replace.replaceElement(element, newElement, hints); - - if (hints.select !== false) { - selection.select(newElement); - } - - return newElement; + return replace.replaceElement(element, newElement, hints); } this.replaceElement = replaceElement; @@ -303,8 +295,7 @@ BpmnReplace.$inject = [ 'moddleCopy', 'modeling', 'replace', - 'rules', - 'selection' + 'rules' ]; From b53a9053634ca76a1a3a9b45bbe4be4f0f0d89b7 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Fri, 17 Mar 2023 11:14:52 +0100 Subject: [PATCH 295/989] deps: upgrade to rollup v3 --- package-lock.json | 195 +++++++++++++++++--------- package.json | 12 +- rollup.config.js => rollup.config.mjs | 9 +- 3 files changed, 142 insertions(+), 74 deletions(-) rename rollup.config.js => rollup.config.mjs (92%) diff --git a/package-lock.json b/package-lock.json index 61ddecb897..473b9a079f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,11 +21,11 @@ }, "devDependencies": { "@babel/core": "^7.20.2", - "@rollup/plugin-commonjs": "^23.0.2", - "@rollup/plugin-json": "^5.0.1", + "@rollup/plugin-commonjs": "^24.0.1", + "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.0.1", - "@rollup/plugin-replace": "^5.0.1", - "@rollup/plugin-terser": "^0.1.0", + "@rollup/plugin-replace": "^5.0.2", + "@rollup/plugin-terser": "^0.4.0", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.12.0", @@ -57,8 +57,8 @@ "puppeteer": "^19.4.1", "remark-cli": "^11.0.0", "remark-preset-bpmn-io": "^0.2.1", - "rollup": "^2.79.1", - "rollup-plugin-license": "^2.9.1", + "rollup": "^3.19.1", + "rollup-plugin-license": "^3.0.0", "sinon": "^15.0.0", "sinon-chai": "^3.7.0", "typescript": "^4.9.5", @@ -866,9 +866,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "23.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.2.tgz", - "integrity": "sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==", + "version": "24.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.1.tgz", + "integrity": "sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -876,7 +876,7 @@ "estree-walker": "^2.0.2", "glob": "^8.0.3", "is-reference": "1.2.1", - "magic-string": "^0.26.4" + "magic-string": "^0.27.0" }, "engines": { "node": ">=14.0.0" @@ -918,6 +918,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", @@ -931,9 +943,9 @@ } }, "node_modules/@rollup/plugin-json": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-5.0.1.tgz", - "integrity": "sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", + "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1" @@ -1020,13 +1032,13 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.1.tgz", - "integrity": "sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz", + "integrity": "sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", - "magic-string": "^0.26.4" + "magic-string": "^0.27.0" }, "engines": { "node": ">=14.0.0" @@ -1040,12 +1052,26 @@ } } }, + "node_modules/@rollup/plugin-replace/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@rollup/plugin-terser": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.1.0.tgz", - "integrity": "sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.0.tgz", + "integrity": "sha512-Ipcf3LPNerey1q9ZMjiaWHlNPEHNU/B5/uh9zXLltfEQ1lVSLLeZSgAtTPWGyw8Ip1guOeq+mDtdOlEj/wNxQw==", "dev": true, "dependencies": { + "serialize-javascript": "^6.0.0", + "smob": "^0.0.6", "terser": "^5.15.1" }, "engines": { @@ -13238,24 +13264,25 @@ } }, "node_modules/rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.19.1.tgz", + "integrity": "sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg==", "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10.0.0" + "node": ">=14.18.0", + "npm": ">=8.0.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "node_modules/rollup-plugin-license": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.1.tgz", - "integrity": "sha512-C26f/bFXR52tzpBMllDnf5m2ETqRuyrrj3m8i3YY4imDwbXtunop+Lj1mO9mn/sZF8gKknOycN1Sm+kMGBd6RA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-3.0.1.tgz", + "integrity": "sha512-/lec6Y94Y3wMfTDeYTO/jSXII0GQ/XkDZCiqkMKxyU5D5nGPaxr/2JNYvAgYsoCYuOLGOanKDPjCCQiTT96p7A==", "dev": true, "dependencies": { "commenting": "~1.1.0", @@ -13269,10 +13296,10 @@ "spdx-satisfies": "~5.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.0.0 || ^2.0.0" + "rollup": "^1.0.0 || ^2.0.0 || ^3.0.0" } }, "node_modules/rollup-plugin-license/node_modules/glob": { @@ -13410,6 +13437,15 @@ "semver": "bin/semver" } }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -13566,6 +13602,12 @@ "node": ">=8" } }, + "node_modules/smob": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/smob/-/smob-0.0.6.tgz", + "integrity": "sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==", + "dev": true + }, "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -14699,15 +14741,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/terser-webpack-plugin/node_modules/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, - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -17096,9 +17129,9 @@ "dev": true }, "@rollup/plugin-commonjs": { - "version": "23.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.2.tgz", - "integrity": "sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==", + "version": "24.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.1.tgz", + "integrity": "sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==", "dev": true, "requires": { "@rollup/pluginutils": "^5.0.1", @@ -17106,7 +17139,7 @@ "estree-walker": "^2.0.2", "glob": "^8.0.3", "is-reference": "1.2.1", - "magic-string": "^0.26.4" + "magic-string": "^0.27.0" }, "dependencies": { "brace-expansion": { @@ -17131,6 +17164,15 @@ "once": "^1.3.0" } }, + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, "minimatch": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", @@ -17143,9 +17185,9 @@ } }, "@rollup/plugin-json": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-5.0.1.tgz", - "integrity": "sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", + "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", "dev": true, "requires": { "@rollup/pluginutils": "^5.0.1" @@ -17194,21 +17236,34 @@ } }, "@rollup/plugin-replace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.1.tgz", - "integrity": "sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz", + "integrity": "sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==", "dev": true, "requires": { "@rollup/pluginutils": "^5.0.1", - "magic-string": "^0.26.4" + "magic-string": "^0.27.0" + }, + "dependencies": { + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + } } }, "@rollup/plugin-terser": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.1.0.tgz", - "integrity": "sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.0.tgz", + "integrity": "sha512-Ipcf3LPNerey1q9ZMjiaWHlNPEHNU/B5/uh9zXLltfEQ1lVSLLeZSgAtTPWGyw8Ip1guOeq+mDtdOlEj/wNxQw==", "dev": true, "requires": { + "serialize-javascript": "^6.0.0", + "smob": "^0.0.6", "terser": "^5.15.1" } }, @@ -26389,9 +26444,9 @@ } }, "rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.19.1.tgz", + "integrity": "sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -26407,9 +26462,9 @@ } }, "rollup-plugin-license": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.1.tgz", - "integrity": "sha512-C26f/bFXR52tzpBMllDnf5m2ETqRuyrrj3m8i3YY4imDwbXtunop+Lj1mO9mn/sZF8gKknOycN1Sm+kMGBd6RA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-3.0.1.tgz", + "integrity": "sha512-/lec6Y94Y3wMfTDeYTO/jSXII0GQ/XkDZCiqkMKxyU5D5nGPaxr/2JNYvAgYsoCYuOLGOanKDPjCCQiTT96p7A==", "dev": true, "requires": { "commenting": "~1.1.0", @@ -26507,6 +26562,15 @@ "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "dev": true }, + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -26638,6 +26702,12 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, + "smob": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/smob/-/smob-0.0.6.tgz", + "integrity": "sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==", + "dev": true + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -27517,15 +27587,6 @@ "ajv-keywords": "^3.5.2" } }, - "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" - } - }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", diff --git a/package.json b/package.json index 500539d9e6..981d8335bb 100644 --- a/package.json +++ b/package.json @@ -58,11 +58,11 @@ ], "devDependencies": { "@babel/core": "^7.20.2", - "@rollup/plugin-commonjs": "^23.0.2", - "@rollup/plugin-json": "^5.0.1", + "@rollup/plugin-commonjs": "^24.0.1", + "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.0.1", - "@rollup/plugin-replace": "^5.0.1", - "@rollup/plugin-terser": "^0.1.0", + "@rollup/plugin-replace": "^5.0.2", + "@rollup/plugin-terser": "^0.4.0", "babel-loader": "^9.1.0", "babel-plugin-istanbul": "^6.1.1", "bpmn-font": "^0.12.0", @@ -94,8 +94,8 @@ "puppeteer": "^19.4.1", "remark-cli": "^11.0.0", "remark-preset-bpmn-io": "^0.2.1", - "rollup": "^2.79.1", - "rollup-plugin-license": "^2.9.1", + "rollup": "^3.19.1", + "rollup-plugin-license": "^3.0.0", "sinon": "^15.0.0", "sinon-chai": "^3.7.0", "typescript": "^4.9.5", diff --git a/rollup.config.js b/rollup.config.mjs similarity index 92% rename from rollup.config.js rename to rollup.config.mjs index 7a0ba30cc1..5b6dcb2804 100644 --- a/rollup.config.js +++ b/rollup.config.mjs @@ -11,7 +11,9 @@ import { readFileSync } from 'fs'; -import pkg from './package.json'; +import path from 'path'; + +const pkg = importPkg(); const outputDir = 'dist'; @@ -81,6 +83,7 @@ function banner(bundleName, minified) { : 'banner' ); + const __dirname = path.resolve(); const bannerTemplate = readFileSync(`${__dirname}/resources/${bannerName}.txt`, 'utf8'); const banner = processTemplate(bannerTemplate, { @@ -136,4 +139,8 @@ function processTemplate(str, args) { return replacement; }); +} + +function importPkg() { + return JSON.parse(readFileSync('./package.json', { encoding:'utf8' })); } \ No newline at end of file From c13e7266c9a6f4ef5ad4d094c81dd1c6ca469888 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 01:31:52 +0000 Subject: [PATCH 296/989] chore: update dependency typescript to v5 --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 473b9a079f..9301dece28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "rollup-plugin-license": "^3.0.0", "sinon": "^15.0.0", "sinon-chai": "^3.7.0", - "typescript": "^4.9.5", + "typescript": "^5.0.0", "webpack": "^5.74.0" } }, @@ -15038,16 +15038,16 @@ "dev": true }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", + "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=12.20" } }, "node_modules/ua-parser-js": { @@ -27796,9 +27796,9 @@ "dev": true }, "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", + "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", "dev": true }, "ua-parser-js": { diff --git a/package.json b/package.json index 981d8335bb..e48cd7e334 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "rollup-plugin-license": "^3.0.0", "sinon": "^15.0.0", "sinon-chai": "^3.7.0", - "typescript": "^4.9.5", + "typescript": "^5.0.0", "webpack": "^5.74.0" }, "dependencies": { From c6b4a72337abd29d7690f2131f29ed97b7e3a94c Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 23 Mar 2023 08:37:52 +0100 Subject: [PATCH 297/989] chore: bundle rollup config as CJS Allows us to get rid of some rollup@3 magic. --- rollup.config.mjs => rollup.config.js | 6 +----- tasks/build-distro.js | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) rename rollup.config.mjs => rollup.config.js (95%) diff --git a/rollup.config.mjs b/rollup.config.js similarity index 95% rename from rollup.config.mjs rename to rollup.config.js index 5b6dcb2804..0d0039d923 100644 --- a/rollup.config.mjs +++ b/rollup.config.js @@ -13,7 +13,7 @@ import { import path from 'path'; -const pkg = importPkg(); +import pkg from './package.json'; const outputDir = 'dist'; @@ -139,8 +139,4 @@ function processTemplate(str, args) { return replacement; }); -} - -function importPkg() { - return JSON.parse(readFileSync('./package.json', { encoding:'utf8' })); } \ No newline at end of file diff --git a/tasks/build-distro.js b/tasks/build-distro.js index 7ca550071c..8e53c489c7 100644 --- a/tasks/build-distro.js +++ b/tasks/build-distro.js @@ -34,7 +34,7 @@ cp('./assets/bpmn-js.css', dest + '/assets'); console.log('building pre-packaged distributions'); try { - exec('rollup', [ '-c' ], { + exec('rollup', [ '-c', '--bundleConfigAsCjs' ], { stdio: 'inherit' }); } catch (e) { From 3c62526327732a72ea2776b87971f48853759b1a Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 23 Mar 2023 09:14:14 +0100 Subject: [PATCH 298/989] chore: drop `__dirname` hack --- rollup.config.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index 0d0039d923..7a0ba30cc1 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -11,8 +11,6 @@ import { readFileSync } from 'fs'; -import path from 'path'; - import pkg from './package.json'; const outputDir = 'dist'; @@ -83,7 +81,6 @@ function banner(bundleName, minified) { : 'banner' ); - const __dirname = path.resolve(); const bannerTemplate = readFileSync(`${__dirname}/resources/${bannerName}.txt`, 'utf8'); const banner = processTemplate(bannerTemplate, { From 42042fc62d910961ef02391106fb83bed2c18ba7 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 22 Mar 2023 16:18:03 +0100 Subject: [PATCH 299/989] feat: remove `create-append-anything` module --- lib/Modeler.js | 2 - .../AppendContextPadProvider.js | 77 -- .../AppendMenuProvider.js | 187 ----- .../create-append-anything/AppendRules.js | 83 --- .../CreateAppendEditorActions.js | 58 -- .../CreateAppendKeyboardBindings.js | 90 --- .../CreateMenuProvider.js | 114 --- .../CreatePaletteProvider.js | 72 -- lib/features/create-append-anything/index.js | 37 - .../util/OptionsUtil.js | 617 ---------------- lib/icons/Icons.js | 11 - lib/icons/resources/append.svg | 3 - lib/icons/resources/create.svg | 3 - test/spec/ModelerSpec.js | 2 - .../AppendContextPadProviderSpec.js | 133 ---- .../AppendMenuProvider.bpmn | 38 - .../AppendMenuProviderSpec.js | 694 ------------------ .../create-append-anything/AppendRules.bpmn | 54 -- .../create-append-anything/AppendRulesSpec.js | 135 ---- .../CreateAppendEditorActionsSpec.js | 150 ---- .../CreateAppendKeyboardBindingsSpec.js | 162 ---- .../CreateMenuProvider.bpmn | 7 - .../CreateMenuProviderSpec.js | 423 ----------- .../CreatePaletteProviderSpec.js | 60 -- 24 files changed, 3212 deletions(-) delete mode 100644 lib/features/create-append-anything/AppendContextPadProvider.js delete mode 100644 lib/features/create-append-anything/AppendMenuProvider.js delete mode 100644 lib/features/create-append-anything/AppendRules.js delete mode 100644 lib/features/create-append-anything/CreateAppendEditorActions.js delete mode 100644 lib/features/create-append-anything/CreateAppendKeyboardBindings.js delete mode 100644 lib/features/create-append-anything/CreateMenuProvider.js delete mode 100644 lib/features/create-append-anything/CreatePaletteProvider.js delete mode 100644 lib/features/create-append-anything/index.js delete mode 100644 lib/features/create-append-anything/util/OptionsUtil.js delete mode 100644 lib/icons/Icons.js delete mode 100644 lib/icons/resources/append.svg delete mode 100644 lib/icons/resources/create.svg delete mode 100644 test/spec/features/create-append-anything/AppendContextPadProviderSpec.js delete mode 100644 test/spec/features/create-append-anything/AppendMenuProvider.bpmn delete mode 100644 test/spec/features/create-append-anything/AppendMenuProviderSpec.js delete mode 100644 test/spec/features/create-append-anything/AppendRules.bpmn delete mode 100644 test/spec/features/create-append-anything/AppendRulesSpec.js delete mode 100644 test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js delete mode 100644 test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js delete mode 100644 test/spec/features/create-append-anything/CreateMenuProvider.bpmn delete mode 100644 test/spec/features/create-append-anything/CreateMenuProviderSpec.js delete mode 100644 test/spec/features/create-append-anything/CreatePaletteProviderSpec.js diff --git a/lib/Modeler.js b/lib/Modeler.js index a5bdcf4e5e..432be36d12 100644 --- a/lib/Modeler.js +++ b/lib/Modeler.js @@ -20,7 +20,6 @@ import ConnectionPreviewModule from 'diagram-js/lib/features/connection-preview' import ContextPadModule from './features/context-pad'; import CopyPasteModule from './features/copy-paste'; import CreateModule from 'diagram-js/lib/features/create'; -import CreateAppendAnythingModule from './features/create-append-anything'; import DistributeElementsModule from './features/distribute-elements'; import EditorActionsModule from './features/editor-actions'; import GridSnappingModule from './features/grid-snapping'; @@ -176,7 +175,6 @@ Modeler.prototype._modelingModules = [ ContextPadModule, CopyPasteModule, CreateModule, - CreateAppendAnythingModule, DistributeElementsModule, EditorActionsModule, GridSnappingModule, diff --git a/lib/features/create-append-anything/AppendContextPadProvider.js b/lib/features/create-append-anything/AppendContextPadProvider.js deleted file mode 100644 index 4797a4267a..0000000000 --- a/lib/features/create-append-anything/AppendContextPadProvider.js +++ /dev/null @@ -1,77 +0,0 @@ -import { - assign -} from 'min-dash'; - -import { - appendIcon -} from '../../icons/Icons'; - -var LOW_PRIORITY = 900; - -/** - * A provider for align elements context pad button - */ -export default function AppendContextPadProvider(contextPad, popupMenu, translate, canvas) { - contextPad.registerProvider(LOW_PRIORITY, this); - - this._contextPad = contextPad; - this._popupMenu = popupMenu; - this._translate = translate; - this._canvas = canvas; -} - -AppendContextPadProvider.$inject = [ - 'contextPad', - 'popupMenu', - 'translate', - 'canvas' -]; - -AppendContextPadProvider.prototype.getContextPadEntries = function(element) { - const popupMenu = this._popupMenu; - const translate = this._translate; - const getAppendMenuPosition = this._getAppendMenuPosition.bind(this); - - if (!popupMenu.isEmpty(element, 'bpmn-append')) { - - // append menu entry - return { - 'append': { - group: 'model', - imageUrl: appendIcon, - title: translate('Append element'), - action: { - click: function(event, element) { - - var position = assign(getAppendMenuPosition(element), { - cursor: { x: event.x, y: event.y } - }); - - popupMenu.open(element, 'bpmn-append', position, { - title: translate('Append element'), - width: 300, - search: true - }); - } - } - } - }; - } -}; - -AppendContextPadProvider.prototype._getAppendMenuPosition = function(element) { - const contextPad = this._contextPad; - - const X_OFFSET = 5; - - const pad = contextPad.getPad(element).html; - - const padRect = pad.getBoundingClientRect(); - - const pos = { - x: padRect.right + X_OFFSET, - y: padRect.top - }; - - return pos; -}; \ No newline at end of file diff --git a/lib/features/create-append-anything/AppendMenuProvider.js b/lib/features/create-append-anything/AppendMenuProvider.js deleted file mode 100644 index 430b1ce5de..0000000000 --- a/lib/features/create-append-anything/AppendMenuProvider.js +++ /dev/null @@ -1,187 +0,0 @@ -import { isUndefined } from 'min-dash'; -import { CREATE_OPTIONS } from './util/OptionsUtil'; - -/** - * This module is an append menu provider for the popup menu. - */ -export default function AppendMenuProvider( - elementFactory, - popupMenu, - create, - autoPlace, - rules, - mouse, - translate -) { - this._elementFactory = elementFactory; - this._popupMenu = popupMenu; - this._create = create; - this._autoPlace = autoPlace; - this._rules = rules; - this._create = create; - this._mouse = mouse; - this._translate = translate; - - this.register(); -} - -AppendMenuProvider.$inject = [ - 'elementFactory', - 'popupMenu', - 'create', - 'autoPlace', - 'rules', - 'mouse', - 'translate' -]; - -/** - * Register append menu provider in the popup menu - */ -AppendMenuProvider.prototype.register = function() { - this._popupMenu.registerProvider('bpmn-append', this); -}; - -/** - * Get all entries from createOptions for the given element. - * - * @param {djs.model.Base} element - * - * @return {Array} a list of menu entry items - */ -AppendMenuProvider.prototype.getPopupMenuEntries = function(element) { - const rules = this._rules; - const translate = this._translate; - - const entries = {}; - - if (!rules.allowed('shape.append', { element: element })) { - return []; - } - - // filter out elements with no incoming connections - const appendOptions = this._filterEntries(CREATE_OPTIONS); - - // map options to menu entries - appendOptions.forEach(option => { - const { - actionName, - className, - label, - target, - description, - group, - search, - rank - } = option; - - entries[`append-${actionName}`] = { - label: label && translate(label), - className, - description, - group: group && { - ...group, - name: translate(group.name) - }, - search, - rank, - action: this._createEntryAction(element, target) - }; - }); - - return entries; -}; - -/** - * Filter out entries from the options. - * - * @param {Array} entries - * - * @return {Array} filtered entries - */ -AppendMenuProvider.prototype._filterEntries = function(entries) { - return entries.filter(option => { - - const target = option.target; - const { - type, - eventDefinitionType - } = target; - - if ([ - 'bpmn:StartEvent', - 'bpmn:Participant' - ].includes(type)) { - return false; - } - - if (type === 'bpmn:BoundaryEvent' && isUndefined(eventDefinitionType)) { - return false; - } - - return true; - }); -}; - -/** - * Create an action for a given target. - * - * @param {djs.model.Base} element - * @param {Object} target - * - * @return {Object} - */ -AppendMenuProvider.prototype._createEntryAction = function(element, target) { - const elementFactory = this._elementFactory; - const autoPlace = this._autoPlace; - const create = this._create; - const mouse = this._mouse; - - - const autoPlaceElement = () => { - const newElement = elementFactory.create('shape', target); - autoPlace.append(element, newElement); - }; - - const manualPlaceElement = (event) => { - const newElement = elementFactory.create('shape', target); - - if (event instanceof KeyboardEvent) { - event = mouse.getLastMoveEvent(); - } - - return create.start(event, newElement, { - source: element - }); - }; - - return { - click: this._canAutoPlaceElement(target) ? autoPlaceElement : manualPlaceElement, - dragstart: manualPlaceElement - }; -}; - -/** - * Check if the element should be auto placed. - * - * @param {Object} target - * - * @return {Boolean} - */ -AppendMenuProvider.prototype._canAutoPlaceElement = (target) => { - const { type } = target; - - if (type === 'bpmn:BoundaryEvent') { - return false; - } - - if (type === 'bpmn:SubProcess' && target.triggeredByEvent) { - return false; - } - - if (type === 'bpmn:IntermediateCatchEvent' && target.eventDefinitionType === 'bpmn:LinkEventDefinition') { - return false; - } - - return true; -}; \ No newline at end of file diff --git a/lib/features/create-append-anything/AppendRules.js b/lib/features/create-append-anything/AppendRules.js deleted file mode 100644 index 11151dc11a..0000000000 --- a/lib/features/create-append-anything/AppendRules.js +++ /dev/null @@ -1,83 +0,0 @@ -import { - find, -} from 'min-dash'; - -import inherits from 'inherits-browser'; - -import { - is, - isAny, - getBusinessObject -} from '../../util/ModelUtil'; - -import { - isLabel -} from '../../util/LabelUtil'; - -import RuleProvider from 'diagram-js/lib/features/rules/RuleProvider'; - - -/** - * Append anything modeling rules - */ -export default function AppendRules(eventBus) { - RuleProvider.call(this, eventBus); -} - -inherits(AppendRules, RuleProvider); - -AppendRules.$inject = [ - 'eventBus' -]; - -AppendRules.prototype.init = function() { - this.addRule('shape.append', function(context) { - - var source = context.element; - - const businessObject = getBusinessObject(source); - - if (isLabel(source)) { - return false; - } - - if (isAny(source, [ - 'bpmn:EndEvent', - 'bpmn:Group', - 'bpmn:TextAnnotation', - 'bpmn:Lane', - 'bpmn:Participant', - 'bpmn:DataStoreReference', - 'bpmn:DataObjectReference' - ])) { - return false; - } - - if (isConnection(source)) { - return false; - } - - if (is(source, 'bpmn:IntermediateThrowEvent') && hasEventDefinition(source, 'bpmn:LinkEventDefinition')) { - return false; - } - - if (is(source, 'bpmn:SubProcess') && businessObject.triggeredByEvent) { - return false; - } - }); - -}; - - -// helpers ////////////// -function hasEventDefinition(element, eventDefinition) { - var bo = getBusinessObject(element); - - return !!find(bo.eventDefinitions || [], function(definition) { - return is(definition, eventDefinition); - }); -} - -function isConnection(element) { - return element.waypoints; -} \ No newline at end of file diff --git a/lib/features/create-append-anything/CreateAppendEditorActions.js b/lib/features/create-append-anything/CreateAppendEditorActions.js deleted file mode 100644 index 0d412eb6d1..0000000000 --- a/lib/features/create-append-anything/CreateAppendEditorActions.js +++ /dev/null @@ -1,58 +0,0 @@ -import { assign } from 'min-dash'; - -/** - * Registers and executes BPMN specific editor actions. - * - * @param {Injector} injector - */ -export default function CreateAppendEditorActions(injector) { - this._injector = injector; - - this.registerActions(); -} - -CreateAppendEditorActions.$inject = [ - 'injector' -]; - -/** - * Register actions. - * - * @param {Injector} injector - */ -CreateAppendEditorActions.prototype.registerActions = function() { - var editorActions = this._injector.get('editorActions', false); - var selection = this._injector.get('selection', false); - var contextPad = this._injector.get('contextPad', false); - var palette = this._injector.get('palette', false); - var popupMenu = this._injector.get('popupMenu', false); - - const actions = {}; - - // append - if (selection && contextPad && palette && popupMenu && palette) { - assign(actions, { - 'appendElement': function(event) { - const selected = selection && selection.get(); - - if (selected.length == 1 && !popupMenu.isEmpty(selected[0], 'bpmn-append')) { - contextPad.triggerEntry('append', 'click', event); - } else { - palette.triggerEntry('create', 'click', event); - } - } - }); - } - - // create - if (palette) { - assign(actions, { - 'createElement': function(event) { - palette.triggerEntry('create', 'click', event); - } } - ); - } - - editorActions && editorActions.register(actions); - -}; diff --git a/lib/features/create-append-anything/CreateAppendKeyboardBindings.js b/lib/features/create-append-anything/CreateAppendKeyboardBindings.js deleted file mode 100644 index 8a8921f4b9..0000000000 --- a/lib/features/create-append-anything/CreateAppendKeyboardBindings.js +++ /dev/null @@ -1,90 +0,0 @@ -import inherits from 'inherits-browser'; - -import KeyboardBindings from 'diagram-js/lib/features/keyboard/KeyboardBindings'; - - -/** - * BPMN 2.0 specific keyboard bindings. - * - * @param {Injector} injector - */ -export default function CreateAppendKeyboardBindings(injector) { - - this._injector = injector; - this._keyboard = this._injector.get('keyboard', false); - this._editorActions = this._injector.get('editorActions', false); - - if (this._keyboard) { - this._injector.invoke(KeyboardBindings, this); - } -} - -inherits(CreateAppendKeyboardBindings, KeyboardBindings); - -CreateAppendKeyboardBindings.$inject = [ - 'injector' -]; - - -/** - * Register available keyboard bindings. - * - * @param {Keyboard} keyboard - * @param {EditorActions} editorActions - */ -CreateAppendKeyboardBindings.prototype.registerBindings = function() { - - var keyboard = this._keyboard; - var editorActions = this._editorActions; - - // inherit default bindings - KeyboardBindings.prototype.registerBindings.call(this, keyboard, editorActions); - - /** - * Add keyboard binding if respective editor action - * is registered. - * - * @param {string} action name - * @param {Function} fn that implements the key binding - */ - function addListener(action, fn) { - - if (editorActions && editorActions.isRegistered(action)) { - keyboard && keyboard.addListener(fn); - } - } - - // activate append/create element - // A - addListener('appendElement', function(context) { - - var event = context.keyEvent; - - if (keyboard && keyboard.hasModifier(event)) { - return; - } - - if (keyboard && keyboard.isKey([ 'a', 'A' ], event)) { - - editorActions && editorActions.trigger('appendElement', event); - return true; - } - }); - - // N - addListener('createElement', function(context) { - - var event = context.keyEvent; - - if (keyboard && keyboard.hasModifier(event)) { - return; - } - - if (keyboard && keyboard.isKey([ 'n', 'N' ], event)) { - editorActions && editorActions.trigger('createElement', event); - - return true; - } - }); - -}; \ No newline at end of file diff --git a/lib/features/create-append-anything/CreateMenuProvider.js b/lib/features/create-append-anything/CreateMenuProvider.js deleted file mode 100644 index f7e6b2d0cd..0000000000 --- a/lib/features/create-append-anything/CreateMenuProvider.js +++ /dev/null @@ -1,114 +0,0 @@ -import { CREATE_OPTIONS } from './util/OptionsUtil'; - -/** - * This module is a create menu provider for the popup menu. - */ -export default function CreateMenuProvider( - elementFactory, popupMenu, create, - autoPlace, mouse, translate -) { - this._elementFactory = elementFactory; - this._popupMenu = popupMenu; - this._create = create; - this._autoPlace = autoPlace; - this._mouse = mouse; - this._translate = translate; - - this.register(); -} - -CreateMenuProvider.$inject = [ - 'elementFactory', - 'popupMenu', - 'create', - 'autoPlace', - 'mouse', - 'translate' -]; - -/** - * Register create menu provider in the popup menu - */ -CreateMenuProvider.prototype.register = function() { - this._popupMenu.registerProvider('bpmn-create', this); -}; - -/** - * Get all entries - * - * @param {djs.model.Base} element - * - * @return {Array} a list of menu entry items - */ -CreateMenuProvider.prototype.getPopupMenuEntries = function() { - - const entries = {}; - - // map options to menu entries - CREATE_OPTIONS.forEach(option => { - const { - actionName, - className, - label, - target, - description, - group, - search, - rank - } = option; - - const targetAction = this._createEntryAction(target); - - entries[`create-${actionName}`] = { - label: label && this._translate(label), - className, - description, - group: group && { - ...group, - name: this._translate(group.name) - }, - search, - rank, - action: { - click: targetAction, - dragstart: targetAction - } - }; - }); - - return entries; -}; - -/** - * Create an action for a given target - * - * @param {Object} target - * @returns {Object} - */ -CreateMenuProvider.prototype._createEntryAction = function(target) { - - const create = this._create; - const mouse = this._mouse; - const popupMenu = this._popupMenu; - const elementFactory = this._elementFactory; - - let newElement; - - return (event) => { - popupMenu.close(); - - // create the new element - if (target.type === 'bpmn:Participant') { - newElement = elementFactory.createParticipantShape(target); - } else { - newElement = elementFactory.create('shape', target); - } - - // use last mouse event if triggered via keyboard - if (event instanceof KeyboardEvent) { - event = mouse.getLastMoveEvent(); - } - - return create.start(event, newElement); - }; -}; \ No newline at end of file diff --git a/lib/features/create-append-anything/CreatePaletteProvider.js b/lib/features/create-append-anything/CreatePaletteProvider.js deleted file mode 100644 index aeb95d1404..0000000000 --- a/lib/features/create-append-anything/CreatePaletteProvider.js +++ /dev/null @@ -1,72 +0,0 @@ -import { createIcon } from '../../icons/Icons'; - -import { query as domQuery } from 'min-dom'; - - -/** - * A palette provider for the create elements menu. - */ -export default function CreatePaletteProvider(palette, translate, popupMenu, canvas, mouse) { - - this._translate = translate; - this._popupMenu = popupMenu; - this._canvas = canvas; - this._mouse = mouse; - - palette.registerProvider(800,this); -} - -CreatePaletteProvider.$inject = [ - 'palette', - 'translate', - 'popupMenu', - 'canvas', - 'mouse' -]; - - -CreatePaletteProvider.prototype.getPaletteEntries = function(element) { - const translate = this._translate, - popupMenu = this._popupMenu, - canvas = this._canvas, - mouse = this._mouse; - - const getPosition = (event) => { - const X_OFFSET = 35; - const Y_OFFSET = 10; - - if (event instanceof KeyboardEvent) { - event = mouse.getLastMoveEvent(); - return { x: event.x, y: event.y }; - } - - const target = event && event.target || domQuery('.djs-palette [data-action="create"]'); - const targetPosition = target.getBoundingClientRect(); - - return target && { - x: targetPosition.left + targetPosition.width / 2 + X_OFFSET, - y: targetPosition.top + targetPosition.height / 2 + Y_OFFSET - }; - }; - - return { - 'create': { - group: 'create', - imageUrl: createIcon, - title: translate('Create element'), - action: { - click: function(event) { - const position = getPosition(event); - - const element = canvas.getRootElement(); - - popupMenu.open(element, 'bpmn-create', position, { - title: translate('Create element'), - width: 300, - search: true - }); - } - } - } - }; -}; diff --git a/lib/features/create-append-anything/index.js b/lib/features/create-append-anything/index.js deleted file mode 100644 index 3704c46614..0000000000 --- a/lib/features/create-append-anything/index.js +++ /dev/null @@ -1,37 +0,0 @@ -import PopupMenuModule from 'diagram-js/lib/features/popup-menu'; -import PaletteModule from 'diagram-js/lib/features/palette'; -import AutoPlaceModule from 'diagram-js/lib/features/auto-place'; -import ContextPadModule from 'diagram-js/lib/features/context-pad'; - -import CreateMenuProvider from './CreateMenuProvider'; -import CreatePaletteProvider from './CreatePaletteProvider'; -import CreateAppendEditorActions from './CreateAppendEditorActions'; -import CreateAppendKeyboardBindings from './CreateAppendKeyboardBindings'; -import AppendMenuProvider from './AppendMenuProvider'; -import AppendContextPadProvider from './AppendContextPadProvider'; -import AppendRules from './AppendRules'; - -export default { - __depends__: [ - PaletteModule, - PopupMenuModule, - AutoPlaceModule, - ContextPadModule - ], - __init__: [ - 'createMenuProvider', - 'createPaletteProvider', - 'createAppendEditorActions', - 'createAppendKeyboardBindings', - 'appendMenuProvider', - 'appendContextPadProvider', - 'appendRules' - ], - createMenuProvider: [ 'type', CreateMenuProvider ], - createPaletteProvider: [ 'type', CreatePaletteProvider ], - createAppendEditorActions: [ 'type', CreateAppendEditorActions ], - createAppendKeyboardBindings: [ 'type', CreateAppendKeyboardBindings ], - appendMenuProvider: [ 'type', AppendMenuProvider ], - appendContextPadProvider: [ 'type', AppendContextPadProvider ], - appendRules: [ 'type', AppendRules ] -}; diff --git a/lib/features/create-append-anything/util/OptionsUtil.js b/lib/features/create-append-anything/util/OptionsUtil.js deleted file mode 100644 index a29a50e993..0000000000 --- a/lib/features/create-append-anything/util/OptionsUtil.js +++ /dev/null @@ -1,617 +0,0 @@ -export var EVENT_GROUP = { - id: 'events', - name: 'Events' -}; - -export var TASK_GROUP = { - id: 'tasks', - name: 'Tasks' -}; - -export var DATA_GROUP = { - id: 'data', - name: 'Data' -}; - -export var PARTICIPANT_GROUP = { - id: 'participants', - name: 'Participants' -}; - -export var SUBPROCESS_GROUP = { - id: 'subprocess', - name: 'Sub Processes' -}; - -export var GATEWAY_GROUP = { - id: 'gateways', - name: 'Gateways' -}; - -export var NONE_EVENTS = [ - { - label: 'Start Event', - actionName: 'none-start-event', - className: 'bpmn-icon-start-event-none', - target: { - type: 'bpmn:StartEvent' - } - }, - { - label: 'Intermediate Throw Event', - actionName: 'none-intermediate-throwing', - className: 'bpmn-icon-intermediate-event-none', - target: { - type: 'bpmn:IntermediateThrowEvent' - } - }, - { - label: 'Boundary Event', - actionName: 'none-boundary-event', - className: 'bpmn-icon-intermediate-event-none', - target: { - type: 'bpmn:BoundaryEvent' - } - }, - { - label: 'End Event', - actionName: 'none-end-event', - className: 'bpmn-icon-end-event-none', - target: { - type: 'bpmn:EndEvent' - } - } -].map(option => ({ ...option, group: EVENT_GROUP })); - -export var TYPED_START_EVENTS = [ - { - label: 'Message Start Event', - actionName: 'message-start', - className: 'bpmn-icon-start-event-message', - target: { - type: 'bpmn:StartEvent', - eventDefinitionType: 'bpmn:MessageEventDefinition' - } - }, - { - label: 'Timer Start Event', - actionName: 'timer-start', - className: 'bpmn-icon-start-event-timer', - target: { - type: 'bpmn:StartEvent', - eventDefinitionType: 'bpmn:TimerEventDefinition' - } - }, - { - label: 'Conditional Start Event', - actionName: 'conditional-start', - className: 'bpmn-icon-start-event-condition', - target: { - type: 'bpmn:StartEvent', - eventDefinitionType: 'bpmn:ConditionalEventDefinition' - } - }, - { - label: 'Signal Start Event', - actionName: 'signal-start', - className: 'bpmn-icon-start-event-signal', - target: { - type: 'bpmn:StartEvent', - eventDefinitionType: 'bpmn:SignalEventDefinition' - } - } -].map(option => ({ ...option, group: EVENT_GROUP })); - -export var TYPED_INTERMEDIATE_EVENT = [ - { - label: 'Message Intermediate Catch Event', - actionName: 'message-intermediate-catch', - className: 'bpmn-icon-intermediate-event-catch-message', - target: { - type: 'bpmn:IntermediateCatchEvent', - eventDefinitionType: 'bpmn:MessageEventDefinition' - } - }, - { - label: 'Message Intermediate Throw Event', - actionName: 'message-intermediate-throw', - className: 'bpmn-icon-intermediate-event-throw-message', - target: { - type: 'bpmn:IntermediateThrowEvent', - eventDefinitionType: 'bpmn:MessageEventDefinition' - } - }, - { - label: 'Timer Intermediate Catch Event', - actionName: 'timer-intermediate-catch', - className: 'bpmn-icon-intermediate-event-catch-timer', - target: { - type: 'bpmn:IntermediateCatchEvent', - eventDefinitionType: 'bpmn:TimerEventDefinition' - } - }, - { - label: 'Escalation Intermediate Throw Event', - actionName: 'escalation-intermediate-throw', - className: 'bpmn-icon-intermediate-event-throw-escalation', - target: { - type: 'bpmn:IntermediateThrowEvent', - eventDefinitionType: 'bpmn:EscalationEventDefinition' - } - }, - { - label: 'Conditional Intermediate Catch Event', - actionName: 'conditional-intermediate-catch', - className: 'bpmn-icon-intermediate-event-catch-condition', - target: { - type: 'bpmn:IntermediateCatchEvent', - eventDefinitionType: 'bpmn:ConditionalEventDefinition' - } - }, - { - label: 'Link Intermediate Catch Event', - actionName: 'link-intermediate-catch', - className: 'bpmn-icon-intermediate-event-catch-link', - target: { - type: 'bpmn:IntermediateCatchEvent', - eventDefinitionType: 'bpmn:LinkEventDefinition', - eventDefinitionAttrs: { - name: '' - } - } - }, - { - label: 'Link Intermediate Throw Event', - actionName: 'link-intermediate-throw', - className: 'bpmn-icon-intermediate-event-throw-link', - target: { - type: 'bpmn:IntermediateThrowEvent', - eventDefinitionType: 'bpmn:LinkEventDefinition', - eventDefinitionAttrs: { - name: '' - } - } - }, - { - label: 'Compensation Intermediate Throw Event', - actionName: 'compensation-intermediate-throw', - className: 'bpmn-icon-intermediate-event-throw-compensation', - target: { - type: 'bpmn:IntermediateThrowEvent', - eventDefinitionType: 'bpmn:CompensateEventDefinition' - } - }, - { - label: 'Signal Intermediate Catch Event', - actionName: 'signal-intermediate-catch', - className: 'bpmn-icon-intermediate-event-catch-signal', - target: { - type: 'bpmn:IntermediateCatchEvent', - eventDefinitionType: 'bpmn:SignalEventDefinition' - } - }, - { - label: 'Signal Intermediate Throw Event', - actionName: 'signal-intermediate-throw', - className: 'bpmn-icon-intermediate-event-throw-signal', - target: { - type: 'bpmn:IntermediateThrowEvent', - eventDefinitionType: 'bpmn:SignalEventDefinition' - } - } -].map(option => ({ ...option, group: EVENT_GROUP })); - -export var TYPED_BOUNDARY_EVENT = [ - { - label: 'Message Boundary Event', - actionName: 'message-boundary', - className: 'bpmn-icon-intermediate-event-catch-message', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:MessageEventDefinition' - } - }, - { - label: 'Timer Boundary Event', - actionName: 'timer-boundary', - className: 'bpmn-icon-intermediate-event-catch-timer', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:TimerEventDefinition' - } - }, - { - label: 'Escalation Boundary Event', - actionName: 'escalation-boundary', - className: 'bpmn-icon-intermediate-event-catch-escalation', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:EscalationEventDefinition' - } - }, - { - label: 'Conditional Boundary Event', - actionName: 'conditional-boundary', - className: 'bpmn-icon-intermediate-event-catch-condition', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:ConditionalEventDefinition' - } - }, - { - label: 'Error Boundary Event', - actionName: 'error-boundary', - className: 'bpmn-icon-intermediate-event-catch-error', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:ErrorEventDefinition' - } - }, - { - label: 'Cancel Boundary Event', - actionName: 'cancel-boundary', - className: 'bpmn-icon-intermediate-event-catch-cancel', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:CancelEventDefinition' - } - }, - { - label: 'Signal Boundary Event', - actionName: 'signal-boundary', - className: 'bpmn-icon-intermediate-event-catch-signal', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:SignalEventDefinition' - } - }, - { - label: 'Compensation Boundary Event', - actionName: 'compensation-boundary', - className: 'bpmn-icon-intermediate-event-catch-compensation', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:CompensateEventDefinition' - } - }, - { - label: 'Message Boundary Event (non-interrupting)', - actionName: 'non-interrupting-message-boundary', - className: 'bpmn-icon-intermediate-event-catch-non-interrupting-message', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:MessageEventDefinition', - cancelActivity: false - } - }, - { - label: 'Timer Boundary Event (non-interrupting)', - actionName: 'non-interrupting-timer-boundary', - className: 'bpmn-icon-intermediate-event-catch-non-interrupting-timer', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:TimerEventDefinition', - cancelActivity: false - } - }, - { - label: 'Escalation Boundary Event (non-interrupting)', - actionName: 'non-interrupting-escalation-boundary', - className: 'bpmn-icon-intermediate-event-catch-non-interrupting-escalation', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:EscalationEventDefinition', - cancelActivity: false - } - }, - { - label: 'Conditional Boundary Event (non-interrupting)', - actionName: 'non-interrupting-conditional-boundary', - className: 'bpmn-icon-intermediate-event-catch-non-interrupting-condition', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:ConditionalEventDefinition', - cancelActivity: false - } - }, - { - label: 'Signal Boundary Event (non-interrupting)', - actionName: 'non-interrupting-signal-boundary', - className: 'bpmn-icon-intermediate-event-catch-non-interrupting-signal', - target: { - type: 'bpmn:BoundaryEvent', - eventDefinitionType: 'bpmn:SignalEventDefinition', - cancelActivity: false - } - } -].map(option => ({ ...option, group: EVENT_GROUP })); - -export var TYPED_END_EVENT = [ - { - label: 'Message End Event', - actionName: 'message-end', - className: 'bpmn-icon-end-event-message', - target: { - type: 'bpmn:EndEvent', - eventDefinitionType: 'bpmn:MessageEventDefinition' - } - }, - { - label: 'Escalation End Event', - actionName: 'escalation-end', - className: 'bpmn-icon-end-event-escalation', - target: { - type: 'bpmn:EndEvent', - eventDefinitionType: 'bpmn:EscalationEventDefinition' - } - }, - { - label: 'Error End Event', - actionName: 'error-end', - className: 'bpmn-icon-end-event-error', - target: { - type: 'bpmn:EndEvent', - eventDefinitionType: 'bpmn:ErrorEventDefinition' - } - }, - { - label: 'Cancel End Event', - actionName: 'cancel-end', - className: 'bpmn-icon-end-event-cancel', - target: { - type: 'bpmn:EndEvent', - eventDefinitionType: 'bpmn:CancelEventDefinition' - } - }, - { - label: 'Compensation End Event', - actionName: 'compensation-end', - className: 'bpmn-icon-end-event-compensation', - target: { - type: 'bpmn:EndEvent', - eventDefinitionType: 'bpmn:CompensateEventDefinition' - } - }, - { - label: 'Signal End Event', - actionName: 'signal-end', - className: 'bpmn-icon-end-event-signal', - target: { - type: 'bpmn:EndEvent', - eventDefinitionType: 'bpmn:SignalEventDefinition' - } - }, - { - label: 'Terminate End Event', - actionName: 'terminate-end', - className: 'bpmn-icon-end-event-terminate', - target: { - type: 'bpmn:EndEvent', - eventDefinitionType: 'bpmn:TerminateEventDefinition' - } - } -].map(option => ({ ...option, group: EVENT_GROUP })); - -export var GATEWAY = [ - { - label: 'Exclusive Gateway', - actionName: 'exclusive-gateway', - className: 'bpmn-icon-gateway-xor', - target: { - type: 'bpmn:ExclusiveGateway' - } - }, - { - label: 'Parallel Gateway', - actionName: 'parallel-gateway', - className: 'bpmn-icon-gateway-parallel', - target: { - type: 'bpmn:ParallelGateway' - } - }, - { - label: 'Inclusive Gateway', - search: 'or', - actionName: 'inclusive-gateway', - className: 'bpmn-icon-gateway-or', - target: { - type: 'bpmn:InclusiveGateway' - }, - rank: -1 - }, - { - label: 'Complex Gateway', - actionName: 'complex-gateway', - className: 'bpmn-icon-gateway-complex', - target: { - type: 'bpmn:ComplexGateway' - }, - rank: -1 - }, - { - label: 'Event based Gateway', - actionName: 'event-based-gateway', - className: 'bpmn-icon-gateway-eventbased', - target: { - type: 'bpmn:EventBasedGateway', - instantiate: false, - eventGatewayType: 'Exclusive' - } - } -].map(option => ({ ...option, group: GATEWAY_GROUP })); - -export var SUBPROCESS = [ - { - label: 'Transaction', - actionName: 'transaction', - className: 'bpmn-icon-transaction', - target: { - type: 'bpmn:Transaction', - isExpanded: true - } - }, - { - label: 'Event Sub Process', - search: 'subprocess', - actionName: 'event-subprocess', - className: 'bpmn-icon-event-subprocess-expanded', - target: { - type: 'bpmn:SubProcess', - triggeredByEvent: true, - isExpanded: true - } - }, - { - label: 'Sub Process (collapsed)', - search: 'subprocess', - actionName: 'collapsed-subprocess', - className: 'bpmn-icon-subprocess-collapsed', - target: { - type: 'bpmn:SubProcess', - isExpanded: false - } - }, - { - label: 'Sub Process (expanded)', - search: 'subprocess', - actionName: 'expanded-subprocess', - className: 'bpmn-icon-subprocess-collapsed', - target: { - type: 'bpmn:SubProcess', - isExpanded: true - } - } -].map(option => ({ ...option, group: SUBPROCESS_GROUP })); - -export var TASK = [ - { - label: 'Task', - actionName: 'task', - className: 'bpmn-icon-task', - target: { - type: 'bpmn:Task' - } - }, - { - label: 'User Task', - actionName: 'user-task', - className: 'bpmn-icon-user', - target: { - type: 'bpmn:UserTask' - } - }, - { - label: 'Service Task', - actionName: 'service-task', - className: 'bpmn-icon-service', - target: { - type: 'bpmn:ServiceTask' - } - }, - { - label: 'Send Task', - actionName: 'send-task', - className: 'bpmn-icon-send', - target: { - type: 'bpmn:SendTask' - }, - rank: -1 - }, - { - label: 'Receive Task', - actionName: 'receive-task', - className: 'bpmn-icon-receive', - target: { - type: 'bpmn:ReceiveTask' - }, - rank: -1 - }, - { - label: 'Manual Task', - actionName: 'manual-task', - className: 'bpmn-icon-manual', - target: { - type: 'bpmn:ManualTask' - }, - rank: -1 - }, - { - label: 'Business Rule Task', - actionName: 'rule-task', - className: 'bpmn-icon-business-rule', - target: { - type: 'bpmn:BusinessRuleTask' - } - }, - { - label: 'Script Task', - actionName: 'script-task', - className: 'bpmn-icon-script', - target: { - type: 'bpmn:ScriptTask' - } - }, - { - label: 'Call Activity', - actionName: 'call-activity', - className: 'bpmn-icon-call-activity', - target: { - type: 'bpmn:CallActivity' - } - } -].map(option => ({ ...option, group: TASK_GROUP })); - -export var DATA_OBJECTS = [ - { - label: 'Data Store Reference', - actionName: 'data-store-reference', - className: 'bpmn-icon-data-store', - target: { - type: 'bpmn:DataStoreReference' - } - }, - { - label: 'Data Object Reference', - actionName: 'data-object-reference', - className: 'bpmn-icon-data-object', - target: { - type: 'bpmn:DataObjectReference' - } - } -].map(option => ({ ...option, group: DATA_GROUP })); - -export var PARTICIPANT = [ - { - label: 'Expanded Pool', - search: 'Participant', - actionName: 'expanded-pool', - className: 'bpmn-icon-participant', - target: { - type: 'bpmn:Participant', - isExpanded: true - } - }, - { - label: 'Empty Pool', - search: 'Collapsed Participant', - actionName: 'collapsed-pool', - className: 'bpmn-icon-lane', - target: { - type: 'bpmn:Participant', - isExpanded: false - } - } -].map(option => ({ ...option, group: PARTICIPANT_GROUP })); - -export var CREATE_OPTIONS = [ - ...GATEWAY, - ...TASK, - ...SUBPROCESS, - ...NONE_EVENTS, - ...TYPED_START_EVENTS, - ...TYPED_INTERMEDIATE_EVENT, - ...TYPED_END_EVENT, - ...TYPED_BOUNDARY_EVENT, - ...DATA_OBJECTS, - ...PARTICIPANT -]; \ No newline at end of file diff --git a/lib/icons/Icons.js b/lib/icons/Icons.js deleted file mode 100644 index 9aeb89405e..0000000000 --- a/lib/icons/Icons.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * To change the icons, modify the SVGs in `./resources`, execute `npx svgo -f resources --datauri enc -o dist`, - * and then replace respective icons with the optimized data URIs in `./dist`. - */ -const appendIcon = 'data:image/svg+xml,%3Csvg%20width%3D%2222%22%20height%3D%2222%22%20viewBox%3D%220%200%205.82%205.82%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M1.3%203.4c.3%200%20.5-.2.5-.5s-.2-.4-.5-.4c-.2%200-.4.1-.4.4%200%20.3.2.5.4.5zM3%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5zM4.6%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5z%22%2F%3E%0A%3C%2Fsvg%3E'; -const createIcon = 'data:image/svg+xml,%3Csvg%20width%3D%2246%22%20height%3D%2246%22%20viewBox%3D%22-2%20-2%209.82%209.82%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M1.3%203.4c.3%200%20.5-.2.5-.5s-.2-.4-.5-.4c-.2%200-.4.1-.4.4%200%20.3.2.5.4.5zM3%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5zM4.6%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5z%22%2F%3E%0A%3C%2Fsvg%3E'; - -export { - appendIcon, - createIcon -}; \ No newline at end of file diff --git a/lib/icons/resources/append.svg b/lib/icons/resources/append.svg deleted file mode 100644 index 88d11936a2..0000000000 --- a/lib/icons/resources/append.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/lib/icons/resources/create.svg b/lib/icons/resources/create.svg deleted file mode 100644 index 5cf8f8650f..0000000000 --- a/lib/icons/resources/create.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/test/spec/ModelerSpec.js b/test/spec/ModelerSpec.js index 10dfb5e93b..67e19dbf3f 100644 --- a/test/spec/ModelerSpec.js +++ b/test/spec/ModelerSpec.js @@ -264,8 +264,6 @@ describe('Modeler', function() { // given var expectedActions = [ - 'appendElement', - 'createElement', 'undo', 'redo', 'copy', diff --git a/test/spec/features/create-append-anything/AppendContextPadProviderSpec.js b/test/spec/features/create-append-anything/AppendContextPadProviderSpec.js deleted file mode 100644 index c4331be450..0000000000 --- a/test/spec/features/create-append-anything/AppendContextPadProviderSpec.js +++ /dev/null @@ -1,133 +0,0 @@ -import { - bootstrapModeler, - getBpmnJS, - inject -} from 'test/TestHelper'; - -import { - query as domQuery -} from 'min-dom'; - -import createAppendAything from 'lib/features/create-append-anything'; -import modelingModule from 'lib/features/modeling'; -import coreModule from 'lib/core'; -import customRules from '../../../util/custom-rules'; - -import { - is -} from 'lib/util/ModelUtil'; - - -describe('features/create-append-anything - append menu provider', function() { - - var testModules = [ - modelingModule, - coreModule, - customRules, - createAppendAything - ]; - - - describe('append', function() { - - var diagramXML = require('../../../fixtures/bpmn/simple.bpmn'); - - beforeEach(bootstrapModeler(diagramXML, { - modules: testModules - })); - - - it('should show append menu in the correct position', inject(function(elementRegistry, contextPad) { - - // given - var element = elementRegistry.get('StartEvent_1'), - padding = { y: 1, x: 5 }, - padMenuRect, - replaceMenuRect; - - contextPad.open(element); - - // when - contextPad.trigger('click', padEvent('append')); - - padMenuRect = contextPad.getPad(element).html.getBoundingClientRect(); - replaceMenuRect = getPopupMenu().getBoundingClientRect(); - - // then - expect(replaceMenuRect.left).to.be.at.most(padMenuRect.right + padding.x); - expect(replaceMenuRect.top).to.be.at.most(padMenuRect.top + padding.y); - })); - - - it('should hide icon if append is disallowed', inject( - function(elementRegistry, contextPad, customRules) { - - // given - var element = elementRegistry.get('StartEvent_1'); - - // disallow append - customRules.addRule('shape.append', function(context) { - return !is(context.element, 'bpmn:StartEvent'); - }); - - // when - contextPad.open(element); - - var padNode = contextPad.getPad(element).html; - - // then - expect(padEntry(padNode, 'append')).not.to.exist; - } - )); - - - it('should show icon if append is allowed', inject( - function(elementRegistry, contextPad, customRules) { - - // given - var element = elementRegistry.get('Task_1'); - - // disallow append - customRules.addRule('shape.append', function(context) { - return !is(context.element, 'bpmn:StartEvent'); - }); - - // when - contextPad.open(element); - - var padNode = contextPad.getPad(element).html; - - // then - expect(padEntry(padNode, 'append')).to.exist; - } - )); - - }); -}); - - -// helper ////////////////////////////////////////////////////////////////////// -function padEntry(element, name) { - return domQuery('[data-action="' + name + '"]', element); -} - -function padEvent(entry) { - - return getBpmnJS().invoke(function(overlays) { - - var target = padEntry(overlays._overlayRoot, entry); - - return { - target: target, - preventDefault: function() {}, - clientX: 100, - clientY: 100 - }; - }); -} - -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/create-append-anything/AppendMenuProvider.bpmn b/test/spec/features/create-append-anything/AppendMenuProvider.bpmn deleted file mode 100644 index 3b0f011ce7..0000000000 --- a/test/spec/features/create-append-anything/AppendMenuProvider.bpmn +++ /dev/null @@ -1,38 +0,0 @@ - - - - - Flow_0zr9ajj - - - Flow_00dqsyf - Flow_0zr9ajj - - - Flow_00dqsyf - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/spec/features/create-append-anything/AppendMenuProviderSpec.js b/test/spec/features/create-append-anything/AppendMenuProviderSpec.js deleted file mode 100644 index 740e72972b..0000000000 --- a/test/spec/features/create-append-anything/AppendMenuProviderSpec.js +++ /dev/null @@ -1,694 +0,0 @@ -import { - bootstrapModeler, - getBpmnJS, - inject -} from 'test/TestHelper'; - -import { - createEvent as globalEvent -} from '../../../util/MockEvents'; - -import coreModule from 'lib/core'; -import modelingModule from 'lib/features/modeling'; -import autoPlace from 'lib/features/auto-place'; -import createAppendAything from 'lib/features/create-append-anything'; -import customRulesModule from '../../../util/custom-rules'; - -import { - query as domQuery, - queryAll as domQueryAll -} from 'min-dom'; - -import { getBusinessObject } from 'lib/util/ModelUtil'; - - -describe('features/create-append-anything - append menu provider', function() { - - var diagramXML = require('./AppendMenuProvider.bpmn'); - - var testModules = [ - coreModule, - modelingModule, - autoPlace, - createAppendAything, - customRulesModule - ]; - - beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); - - - describe('rules', function() { - - it('should get entries by default', inject(function(elementRegistry) { - - // given - var startEvent = elementRegistry.get('StartEvent'); - - // when - openPopup(startEvent); - - // then - expect(queryEntries()).to.have.length.above(0); - })); - - - it('should get entries when custom rule returns true', - inject(function(elementRegistry, customRules) { - - // given - var startEvent = elementRegistry.get('StartEvent'); - - customRules.addRule('shape.append', function() { - return true; - }); - - // when - openPopup(startEvent); - - // then - expect(queryEntries()).to.have.length.above(0); - }) - ); - - - it('should get no entries when custom rule returns false', - inject(function(elementRegistry, customRules) { - - // given - var startEvent = elementRegistry.get('StartEvent'); - - customRules.addRule('shape.append', function() { - return false; - }); - - // when - openPopup(startEvent); - - // then - expect(queryEntries()).to.have.length(0); - }) - ); - - }); - - - describe('menu', function() { - - describe('should not appear as append option', function() { - - it('Start Event', inject(function(elementRegistry) { - - // given - const task = elementRegistry.get('Task'); - - // when - openPopup(task); - - // then - expect(queryEntry('append-none-start')).to.not.exist; - })); - - - it('Participant', inject(function(elementRegistry) { - - // given - const task = elementRegistry.get('Task'); - - // when - openPopup(task); - - // then - expect(queryEntry('append-expanded-pool')).to.not.exist; - })); - - - it('None Boundary Event', inject(function(elementRegistry) { - - // given - const task = elementRegistry.get('Task'); - - // when - openPopup(task); - - // then - expect(queryEntry('append-boundary-event')).to.not.exist; - })); - - }); - - }); - - - describe('append', function() { - - describe('task', function() { - - it('should append', inject(function(elementRegistry) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - - expect(outgoingFlows).to.have.length(1); - - // when - openPopup(startEvent); - triggerAction('append-task'); - - // then - expect(outgoingFlows).to.have.length(2); - })); - - - it('should append via dragstart', inject(function(elementRegistry, eventBus, dragging) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - const createSpy = sinon.spy(); - const endSpy = sinon.spy(); - - eventBus.on('create.start', createSpy); - eventBus.on('create.end', endSpy); - - // when - openPopup(startEvent); - placeDragElement(startEvent, 'append-task'); - - // then - expect(createSpy).to.have.been.called; - expect(endSpy).to.have.been.called; - expect(outgoingFlows).to.have.length(2); - })); - - - it('should undo', inject(function(elementRegistry, commandStack) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - - // when - openPopup(startEvent); - triggerAction('append-task'); - - // then - expect(outgoingFlows).to.have.length(2); - - // when - commandStack.undo(); - - // then - expect(outgoingFlows).to.have.length(1); - })); - - - it('should redo', inject(function(elementRegistry, commandStack) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - - // when - openPopup(startEvent); - triggerAction('append-task'); - commandStack.undo(); - - // then - expect(outgoingFlows).to.have.length(1); - - // when - commandStack.redo(); - - // then - expect(outgoingFlows).to.have.length(2); - })); - - }); - - - describe('sub process', function() { - - it('should append', inject(function(elementRegistry) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - - expect(outgoingFlows).to.have.length(1); - - // when - openPopup(startEvent); - triggerAction('append-expanded-subprocess'); - - // then - expect(outgoingFlows).to.have.length(2); - })); - - - it('should append via dragstart', inject(function(elementRegistry, eventBus, dragging) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - const createSpy = sinon.spy(); - const endSpy = sinon.spy(); - - eventBus.on('create.start', createSpy); - eventBus.on('create.end', endSpy); - - // when - openPopup(startEvent); - placeDragElement(startEvent, 'append-expanded-subprocess'); - - // then - expect(createSpy).to.have.been.called; - expect(endSpy).to.have.been.called; - expect(outgoingFlows).to.have.length(2); - })); - - - it('should undo', inject(function(elementRegistry, commandStack) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - - // when - openPopup(startEvent); - triggerAction('append-expanded-subprocess'); - - // then - expect(outgoingFlows).to.have.length(2); - - // when - commandStack.undo(); - - // then - expect(outgoingFlows).to.have.length(1); - })); - - - it('should redo', inject(function(elementRegistry, commandStack) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - - openPopup(startEvent); - triggerAction('append-expanded-subprocess'); - commandStack.undo(); - - // then - expect(outgoingFlows).to.have.length(1); - - // when - commandStack.redo(); - - // then - expect(outgoingFlows).to.have.length(2); - })); - - - describe('should trigger create mode', function() { - - it('event subprocess', inject(function(elementRegistry, eventBus) { - - // given - const task = elementRegistry.get('Task'); - - const spy = sinon.spy(); - - eventBus.on('create.init', spy); - - // when - openPopup(task); - - triggerAction('append-event-subprocess'); - - // then - expect(spy).to.have.been.called; - - })); - - }); - - - }); - - - describe('event', function() { - - it('should append', inject(function(elementRegistry) { - - // given - const task = elementRegistry.get('Task'); - const outgoingFlows = getBusinessObject(task).outgoing; - - expect(outgoingFlows).to.have.length(1); - - // when - openPopup(task); - triggerAction('append-none-end-event'); - - // then - expect(outgoingFlows).to.have.length(2); - })); - - - it('should append via dragstart', inject(function(elementRegistry, eventBus, dragging) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - const createSpy = sinon.spy(); - const endSpy = sinon.spy(); - - eventBus.on('create.start', createSpy); - eventBus.on('create.end', endSpy); - - // when - openPopup(startEvent); - placeDragElement(startEvent, 'append-none-end-event'); - - // then - expect(createSpy).to.have.been.called; - expect(endSpy).to.have.been.called; - expect(outgoingFlows).to.have.length(2); - })); - - - it('should undo', inject(function(elementRegistry, commandStack) { - - // given - const task = elementRegistry.get('Task'); - const outgoingFlows = getBusinessObject(task).outgoing; - - // when - openPopup(task); - triggerAction('append-none-end-event'); - - // then - expect(outgoingFlows).to.have.length(2); - - // when - commandStack.undo(); - - // then - expect(outgoingFlows).to.have.length(1); - })); - - - it('should redo', inject(function(elementRegistry, commandStack) { - - // given - const task = elementRegistry.get('Task'); - const outgoingFlows = getBusinessObject(task).outgoing; - - openPopup(task); - triggerAction('append-none-end-event'); - commandStack.undo(); - - // then - expect(outgoingFlows).to.have.length(1); - - // when - commandStack.redo(); - - // then - expect(outgoingFlows).to.have.length(2); - })); - - - describe('should trigger create mode', function() { - - it('boundary event', inject(function(elementRegistry, eventBus) { - - // given - const task = elementRegistry.get('Task'); - - const spy = sinon.spy(); - - eventBus.on('create.init', spy); - - // when - openPopup(task); - - triggerAction('append-non-interrupting-message-boundary'); - - // then - expect(spy).to.have.been.called; - - })); - - - it('link intermediate catch event', inject(function(elementRegistry, eventBus) { - - // given - const task = elementRegistry.get('Task'); - - const spy = sinon.spy(); - - eventBus.on('create.init', spy); - - // when - openPopup(task); - - triggerAction('append-link-intermediate-catch'); - - // then - expect(spy).to.have.been.called; - - })); - - }); - - }); - - - describe('gateway', function() { - - it('should append', inject(function(elementRegistry) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - - expect(outgoingFlows).to.have.length(1); - - // when - openPopup(startEvent); - triggerAction('append-exclusive-gateway'); - - // then - expect(outgoingFlows).to.have.length(2); - })); - - - it('should append via dragstart', inject(function(elementRegistry, eventBus, dragging) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - const createSpy = sinon.spy(); - const endSpy = sinon.spy(); - - eventBus.on('create.start', createSpy); - eventBus.on('create.end', endSpy); - - // when - openPopup(startEvent); - placeDragElement(startEvent, 'append-exclusive-gateway'); - - // then - expect(createSpy).to.have.been.called; - expect(endSpy).to.have.been.called; - expect(outgoingFlows).to.have.length(2); - })); - - - it('should undo', inject(function(elementRegistry, commandStack) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - - // when - openPopup(startEvent); - triggerAction('append-exclusive-gateway'); - - // then - expect(outgoingFlows).to.have.length(2); - - // when - commandStack.undo(); - - // then - expect(outgoingFlows).to.have.length(1); - })); - - - it('should redo', inject(function(elementRegistry, commandStack) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - - openPopup(startEvent); - triggerAction('append-exclusive-gateway'); - commandStack.undo(); - - // then - expect(outgoingFlows).to.have.length(1); - - // when - commandStack.redo(); - - // then - expect(outgoingFlows).to.have.length(2); - })); - - }); - - - describe('data reference', function() { - - it('should append', inject(function(elementRegistry) { - - // given - const task = elementRegistry.get('Task'); - const dataOutputAssociations = getBusinessObject(task).get('dataOutputAssociations'); - - expect(dataOutputAssociations).to.have.length(0); - - // when - openPopup(task); - triggerAction('append-data-store-reference'); - - // then - expect(dataOutputAssociations).to.have.length(1); - })); - - - it('should append via dragstart', inject(function(elementRegistry, eventBus, dragging) { - - // given - const startEvent = elementRegistry.get('StartEvent'); - const outgoingFlows = getBusinessObject(startEvent).outgoing; - const createSpy = sinon.spy(); - const endSpy = sinon.spy(); - - eventBus.on('create.start', createSpy); - eventBus.on('create.end', endSpy); - - // when - openPopup(startEvent); - placeDragElement(startEvent, 'append-data-store-reference'); - - // then - expect(createSpy).to.have.been.called; - expect(endSpy).to.have.been.called; - expect(outgoingFlows).to.have.length(1); - })); - - - it('should undo', inject(function(elementRegistry, commandStack) { - - // given - const task = elementRegistry.get('Task'); - const dataOutputAssociations = getBusinessObject(task).get('dataOutputAssociations'); - - // when - openPopup(task); - triggerAction('append-data-store-reference'); - - // then - expect(dataOutputAssociations).to.have.length(1); - - // when - commandStack.undo(); - - // then - expect(dataOutputAssociations).to.have.length(0); - })); - - - it('should redo', inject(function(elementRegistry, commandStack) { - - // given - const task = elementRegistry.get('Task'); - const dataOutputAssociations = getBusinessObject(task).get('dataOutputAssociations'); - - openPopup(task); - triggerAction('append-data-store-reference'); - commandStack.undo(); - - // then - expect(dataOutputAssociations).to.have.length(0); - - // when - commandStack.redo(); - - // then - expect(dataOutputAssociations).to.have.length(1); - })); - - }); - - }); - -}); - - -// // helpers -function openPopup(element, offset) { - offset = offset || 100; - - getBpmnJS().invoke(function(popupMenu) { - - popupMenu.open(element, 'bpmn-append', { - x: element.x + offset, y: element.y + offset - }); - - }); -} - -function queryEntry(id) { - var container = getMenuContainer(); - - return domQuery('.djs-popup [data-id="' + id + '"]', container); -} - -function queryEntries() { - var container = getMenuContainer(); - - return domQueryAll('.djs-popup .entry', container); -} - -function getMenuContainer() { - const popup = getBpmnJS().get('popupMenu'); - return popup._current.container; -} - -function triggerAction(id, action = 'click') { - var entry = queryEntry(id); - - if (!entry) { - throw new Error('entry "' + id + '" not found in append menu'); - } - - var popupMenu = getBpmnJS().get('popupMenu'); - return popupMenu.trigger(globalEvent(entry, { x: 0, y: 0 }), null, action); -} - -function placeDragElement(element, action) { - var dragging = getBpmnJS().get('dragging'); - var elementRegistry = getBpmnJS().get('elementRegistry'); - - let processElement = elementRegistry.get('Process_07k5b99'); - - triggerAction(action, 'dragstart'); - - dragging.hover({ element: processElement }); - dragging.end(); -} \ No newline at end of file diff --git a/test/spec/features/create-append-anything/AppendRules.bpmn b/test/spec/features/create-append-anything/AppendRules.bpmn deleted file mode 100644 index c11f137a04..0000000000 --- a/test/spec/features/create-append-anything/AppendRules.bpmn +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - SequenceFlow - - - SequenceFlow - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/test/spec/features/create-append-anything/AppendRulesSpec.js b/test/spec/features/create-append-anything/AppendRulesSpec.js deleted file mode 100644 index cf72c3111c..0000000000 --- a/test/spec/features/create-append-anything/AppendRulesSpec.js +++ /dev/null @@ -1,135 +0,0 @@ -import { - bootstrapModeler, - inject -} from 'test/TestHelper'; - -import createAppendAnything from 'lib/features/create-append-anything'; -import modelingModule from 'lib/features/modeling'; -import coreModule from 'lib/core'; -import rulesModule from 'diagram-js/lib/features/rules'; - - -describe('features/create-append-anything - rules', function() { - - var testModules = [ modelingModule, coreModule, rulesModule, createAppendAnything ]; - - var testXML = require('./AppendRules.bpmn'); - - beforeEach(bootstrapModeler(testXML, { modules: testModules })); - - - describe('element append', function() { - - it('should not allow for given element types', inject(function(elementFactory, rules) { - - // given - var types = [ - 'bpmn:EndEvent', - 'bpmn:Group', - 'bpmn:TextAnnotation', - 'bpmn:Lane', - 'bpmn:Participant', - 'bpmn:DataStoreReference', - 'bpmn:DataObjectReference' - ]; - - // when - var results = types.map(function(type) { - var element = elementFactory.createShape({ type: type }); - return rules.allowed('shape.append', { element }); - }); - - // then - results.forEach(function(result) { - expect(result).to.be.false; - }); - })); - - - it('should not allow for labels', inject(function(elementRegistry, rules) { - - // given - var element = elementRegistry.get('START_EVENT').label; - - // when - var allowed = rules.allowed('shape.append', { element }); - - // then - expect(allowed).to.be.false; - })); - - - it('should not allow for event subprocess', inject(function(elementFactory, rules) { - - // given - var element = elementFactory.createShape({ type: 'bpmn:SubProcess', triggeredByEvent: true }); - - // when - var result = rules.allowed('shape.append', { element }); - - // then - expect(result).to.be.false; - })); - - - it('should not allow for link intermediate throw event', inject(function(elementFactory, rules) { - - // given - var element = elementFactory.createShape({ - type: 'bpmn:IntermediateThrowEvent', - cancelActivity: false, - eventDefinitionType: 'bpmn:LinkEventDefinition' - }); - - // when - var result = rules.allowed('shape.append', { element }); - - // then - expect(result).to.be.false; - })); - - - describe('connections', function() { - - it('should not allow for sequence flows', inject(function(elementRegistry, rules) { - - // given - var element = elementRegistry.get('SequenceFlow'); - - // when - const allowed = rules.allowed('shape.append', { element }); - - // then - expect(allowed).to.be.false; - })); - - - it('should not allow for associations', inject(function(elementRegistry, rules) { - - // given - var element = elementRegistry.get('Association'); - - // when - const allowed = rules.allowed('shape.append', { element }); - - // then - expect(allowed).to.be.false; - })); - - - it('should not allow for message flows', inject(function(elementRegistry, rules) { - - // given - var element = elementRegistry.get('MessageFlow'); - - // when - const allowed = rules.allowed('shape.append', { element }); - - // then - expect(allowed).to.be.false; - })); - - }); - }); - -}); \ No newline at end of file diff --git a/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js b/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js deleted file mode 100644 index 8d7691f1d7..0000000000 --- a/test/spec/features/create-append-anything/CreateAppendEditorActionsSpec.js +++ /dev/null @@ -1,150 +0,0 @@ -import { - bootstrapModeler, - inject, - getBpmnJS -} from 'test/TestHelper'; - -import { - query as domQuery -} from 'min-dom'; - -import selectionModule from 'diagram-js/lib/features/selection'; -import modelingModule from 'lib/features/modeling'; -import coreModule from 'lib/core'; -import editorActionsModule from 'diagram-js/lib/features/editor-actions'; -import createAppendAnything from 'lib/features/create-append-anything'; - -var basicXML = require('../../../fixtures/bpmn/nested-subprocesses.bpmn'); - - -describe('features/create-append-anything - editor actions', function() { - - describe('#appendElement', function() { - - beforeEach(bootstrapModeler(basicXML, { - modules: [ - selectionModule, - modelingModule, - coreModule, - editorActionsModule, - createAppendAnything - ] - })); - - - it('should open append 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('appendElement', {}); - - // then - expect(changedSpy).to.have.been.called; - expect(isMenu('bpmn-append')).to.be.true; - })); - - - it('should open create 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('appendElement', {}); - - // then - expect(changedSpy).to.have.been.called; - expect(isMenu('bpmn-create')).to.be.true; - })); - - - it('should open create element if no selection', inject(function(elementRegistry, selection, editorActions, eventBus) { - - // given - var changedSpy = sinon.spy(); - - // when - eventBus.once('popupMenu.open', changedSpy); - - editorActions.trigger('appendElement', {}); - - // then - expect(changedSpy).to.have.been.called; - expect(isMenu('bpmn-create')).to.be.true; - })); - - - it('should open create element if append not allowed', inject(function(elementRegistry, selection, editorActions, eventBus) { - - // given - const element = elementRegistry.get('EndEvent_1'); - - selection.select(element); - var changedSpy = sinon.spy(); - - // when - eventBus.once('popupMenu.open', changedSpy); - - editorActions.trigger('appendElement', {}); - - // then - expect(changedSpy).to.have.been.called; - expect(isMenu('bpmn-create')).to.be.true; - })); - - }); - - - describe('#createElement', function() { - - beforeEach(bootstrapModeler(basicXML, { - modules: [ - selectionModule, - modelingModule, - coreModule, - editorActionsModule, - createAppendAnything - ] - })); - - - it('should open create element', inject(function(editorActions, eventBus) { - - // given - var changedSpy = sinon.spy(); - eventBus.once('popupMenu.open', changedSpy); - - // when - editorActions.trigger('createElement', {}); - - // then - expect(changedSpy).to.have.been.called; - })); - - }); - -}); - - -// helpers ////////////////////// -function isMenu(menuId) { - const popup = getBpmnJS().get('popupMenu'); - const popupElement = popup._current && domQuery('.djs-popup', popup._current.container); - - return popupElement.classList.contains(menuId); -} \ No newline at end of file diff --git a/test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js b/test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js deleted file mode 100644 index 7bac89aacf..0000000000 --- a/test/spec/features/create-append-anything/CreateAppendKeyboardBindingsSpec.js +++ /dev/null @@ -1,162 +0,0 @@ -import { - bootstrapViewer, - inject, - getBpmnJS -} from 'test/TestHelper'; - -import { forEach } from 'min-dash'; - -import coreModule from 'lib/core'; -import modelingModule from 'lib/features/modeling'; -import keyboardModule from 'diagram-js/lib/features/keyboard'; -import createAppendAnything from 'lib/features/create-append-anything'; -import editorActions from 'diagram-js/lib/features/editor-actions'; - -import { - createKeyEvent -} from 'test/util/KeyEvents'; - -import { - query as domQuery -} from 'min-dom'; - - -describe('features/create-append-anything - keyboard bindings', function() { - - var diagramXML = require('../../../fixtures/bpmn/simple.bpmn'); - - var testModules = [ - coreModule, - modelingModule, - keyboardModule, - editorActions, - createAppendAnything - ]; - - beforeEach(bootstrapViewer(diagramXML, { modules: testModules })); - - - describe('create append keyboard bindings', function() { - - it('should include triggers inside editorActions', inject(function(editorActions) { - - // given - var expectedActions = [ - 'appendElement', - 'createElement' - ]; - var actualActions = editorActions.getActions(); - - // then - expect( - expectedActions.every(action => actualActions.includes(action)) - ).to.be.true; - })); - - - forEach([ 'a', 'A' ], function(key) { - - it('should trigger append 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; - expect(isMenu('bpmn-append')).to.be.true; - })); - - - it('should trigger create menu', - inject(function(keyboard, popupMenu) { - - sinon.spy(popupMenu, 'open'); - - // given - var e = createKeyEvent(key); - - // when - keyboard._keyHandler(e); - - // then - expect(popupMenu.open).to.have.been.calledOnce; - expect(isMenu('bpmn-create')).to.be.true; - })); - - - it('should not trigger create or append menus', - inject(function(keyboard, popupMenu) { - - sinon.spy(popupMenu, 'open'); - - // given - var e = createKeyEvent(key, { ctrlKey: true }); - - // when - keyboard._keyHandler(e); - - // then - expect(popupMenu.open).to.not.have.been.called; - })); - - }); - - - forEach([ 'n', 'N' ], function(key) { - - it('should trigger create menu', - inject(function(keyboard, popupMenu) { - - sinon.spy(popupMenu, 'open'); - - // given - var e = createKeyEvent(key); - - // when - keyboard._keyHandler(e); - - // then - expect(popupMenu.open).to.have.been.calledOnce; - expect(isMenu('bpmn-create')).to.be.true; - })); - - - it('should not trigger create menu', - inject(function(keyboard, popupMenu) { - - sinon.spy(popupMenu, 'open'); - - // given - var e = createKeyEvent(key, { ctrlKey: true }); - - // when - keyboard._keyHandler(e); - - // then - expect(popupMenu.open).to.not.have.been.called; - })); - - }); - - }); - -}); - - -// helpers ////////////////////// -function isMenu(menuId) { - const popup = getBpmnJS().get('popupMenu'); - const popupElement = popup._current && domQuery('.djs-popup', popup._current.container); - - return popupElement.classList.contains(menuId); -} \ No newline at end of file diff --git a/test/spec/features/create-append-anything/CreateMenuProvider.bpmn b/test/spec/features/create-append-anything/CreateMenuProvider.bpmn deleted file mode 100644 index 191f71b000..0000000000 --- a/test/spec/features/create-append-anything/CreateMenuProvider.bpmn +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/test/spec/features/create-append-anything/CreateMenuProviderSpec.js b/test/spec/features/create-append-anything/CreateMenuProviderSpec.js deleted file mode 100644 index d787a3db0b..0000000000 --- a/test/spec/features/create-append-anything/CreateMenuProviderSpec.js +++ /dev/null @@ -1,423 +0,0 @@ -import { - bootstrapModeler, - getBpmnJS, - inject -} from 'test/TestHelper'; - -import { - createCanvasEvent, - createEvent as globalEvent -} from '../../../util/MockEvents'; - -import coreModule from 'lib/core'; -import modelingModule from 'lib/features/modeling'; -import createAppendElements from 'lib/features/create-append-anything'; - -import { - query as domQuery -} from 'min-dom'; - -import { is } from 'lib/util/ModelUtil'; - - -describe('features/popup-menu - create menu provider', function() { - - var diagramXML = require('./CreateMenuProvider.bpmn'); - - var testModules = [ - coreModule, - modelingModule, - createAppendElements - ]; - - beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); - - - describe('create', function() { - - describe('task', function() { - - it('should create', inject(function(canvas, dragging, selection, elementRegistry) { - - // when - triggerEntry('create-task', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:Task'); - expectSelected(selection, 'bpmn:Task'); - })); - - - it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-task', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:Task'); - expectSelected(selection, 'bpmn:Task'); - - // when - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:Task', false); - expectSelected(selection, 'bpmn:Task', false); - })); - - - it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-task', canvas, dragging); - - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:Task', false); - expectSelected(selection, 'bpmn:Task', false); - - // when; - commandStack.redo(); - - // then - expectElement(elementRegistry, 'bpmn:Task'); - })); - - }); - - - describe('sub process', function() { - - it('should create', inject(function(canvas, dragging, selection, elementRegistry) { - - // when - triggerEntry('create-expanded-subprocess', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:SubProcess'); - expectSelected(selection, 'bpmn:SubProcess'); - })); - - - it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-expanded-subprocess', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:SubProcess'); - expectSelected(selection, 'bpmn:SubProcess'); - - // when - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:SubProcess', false); - expectSelected(selection, 'bpmn:SubProcess', false); - })); - - - it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-expanded-subprocess', canvas, dragging); - - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:SubProcess', false); - expectSelected(selection, 'bpmn:SubProcess', false); - - // when; - commandStack.redo(); - - // then - expectElement(elementRegistry, 'bpmn:SubProcess'); - })); - - }); - - - describe('event', function() { - - it('should create', inject(function(canvas, dragging, selection, elementRegistry) { - - // when - triggerEntry('create-none-start-event', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:StartEvent'); - expectSelected(selection, 'bpmn:StartEvent'); - })); - - - it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-none-start-event', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:StartEvent'); - expectSelected(selection, 'bpmn:StartEvent'); - - // when - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:StartEvent', false); - expectSelected(selection, 'bpmn:StartEvent', false); - })); - - - it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-none-start-event', canvas, dragging); - - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:StartEvent', false); - expectSelected(selection, 'bpmn:StartEvent', false); - - // when; - commandStack.redo(); - - // then - expectElement(elementRegistry, 'bpmn:StartEvent'); - })); - - }); - - - describe('gateway', function() { - - it('should create', inject(function(canvas, dragging, selection, elementRegistry) { - - // when - triggerEntry('create-exclusive-gateway', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:ExclusiveGateway'); - expectSelected(selection, 'bpmn:ExclusiveGateway'); - })); - - - it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-exclusive-gateway', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:ExclusiveGateway'); - expectSelected(selection, 'bpmn:ExclusiveGateway'); - - // when - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:ExclusiveGateway', false); - expectSelected(selection, 'bpmn:ExclusiveGateway', false); - })); - - - it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-exclusive-gateway', canvas, dragging); - - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:ExclusiveGateway', false); - expectSelected(selection, 'bpmn:ExclusiveGateway', false); - - // when; - commandStack.redo(); - - // then - expectElement(elementRegistry, 'bpmn:ExclusiveGateway'); - })); - - }); - - - describe('data reference', function() { - - it('should create', inject(function(canvas, dragging, selection, elementRegistry) { - - // when - triggerEntry('create-data-store-reference', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:DataStoreReference'); - expectSelected(selection, 'bpmn:DataStoreReference'); - })); - - - it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-data-store-reference', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:DataStoreReference'); - expectSelected(selection, 'bpmn:DataStoreReference'); - - // when - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:DataStoreReference', false); - expectSelected(selection, 'bpmn:DataStoreReference', false); - })); - - - it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-data-store-reference', canvas, dragging); - - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:DataStoreReference', false); - expectSelected(selection, 'bpmn:DataStoreReference', false); - - // when; - commandStack.redo(); - - // then - expectElement(elementRegistry, 'bpmn:DataStoreReference'); - })); - - }); - - - describe('participant', function() { - - it('should create', inject(function(canvas, dragging, selection, elementRegistry) { - - // when - triggerEntry('create-expanded-pool', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:Participant'); - expectSelected(selection, 'bpmn:Participant'); - })); - - - it('should undo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-expanded-pool', canvas, dragging); - - // then - expectElement(elementRegistry, 'bpmn:Participant'); - expectSelected(selection, 'bpmn:Participant'); - - // when - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:Participant', false); - expectSelected(selection, 'bpmn:Participant', false); - })); - - - it('should redo', inject(function(canvas, dragging, selection, commandStack, elementRegistry) { - - // when - triggerEntry('create-expanded-pool', canvas, dragging); - - commandStack.undo(); - - // then - expectElement(elementRegistry, 'bpmn:Participant', false); - expectSelected(selection, 'bpmn:Participant', false); - - // when; - commandStack.redo(); - - // then - expectElement(elementRegistry, 'bpmn:Participant'); - })); - - }); - - }); - -}); - - -// // helpers -function openPopup(element, offset) { - offset = offset || 100; - - getBpmnJS().invoke(function(popupMenu) { - - popupMenu.open(element, 'bpmn-create', { - x: element.x + offset, y: element.y + offset - }); - - }); -} - -function queryEntry(id) { - var container = getMenuContainer(); - - return domQuery('.djs-popup [data-id="' + id + '"]', container); -} - -function getMenuContainer() { - const popup = getBpmnJS().get('popupMenu'); - return popup._current.container; -} - -function triggerAction(id) { - var entry = queryEntry(id); - - if (!entry) { - throw new Error('entry "' + id + '" not found in append menu'); - } - - var popupMenu = getBpmnJS().get('popupMenu'); - - return popupMenu.trigger(globalEvent(entry, { x: 0, y: 0 })); -} - -function triggerEntry(id, canvas, dragging) { - var rootElement = canvas.getRootElement(), - rootGfx = canvas.getGraphics(rootElement); - - openPopup(rootElement); - triggerAction(id); - - dragging.hover({ element: rootElement, gfx: rootGfx }); - dragging.move(createCanvasEvent({ x: 100, y: 100 })); - - // when - dragging.end(); -} - -function expectElement(elementRegistry, type, result = true) { - const element = elementRegistry.find((element) => is(element, type)); - - if (!result) { - expect(element).to.not.exist; - } else { - expect(element).to.exist; - } -} - -function expectSelected(selection, type, result = true) { - const selected = selection.get(); - - if (!result) { - expect(selected).to.have.length(0); - } else { - expect(selected).to.have.length(1); - expect(is(selected[0], type)).to.be.true; - } -} \ No newline at end of file diff --git a/test/spec/features/create-append-anything/CreatePaletteProviderSpec.js b/test/spec/features/create-append-anything/CreatePaletteProviderSpec.js deleted file mode 100644 index b73b939814..0000000000 --- a/test/spec/features/create-append-anything/CreatePaletteProviderSpec.js +++ /dev/null @@ -1,60 +0,0 @@ -import { - bootstrapModeler, - getBpmnJS, - inject -} from 'test/TestHelper'; - -import coreModule from 'lib/core'; -import modelingModule from 'lib/features/modeling'; -import createAppendElements from 'lib/features/create-append-anything'; - -import { createMoveEvent } from 'diagram-js/lib/features/mouse/Mouse'; - - -describe('features/palette', function() { - - var diagramXML = require('./CreateMenuProvider.bpmn'); - - var testModules = [ - coreModule, - modelingModule, - createAppendElements - ]; - - beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); - - - describe('create', function() { - - it('should trigger create menu', inject(function(popupMenu, canvas) { - - // given - var createSpy = sinon.spy(popupMenu, 'open'); - - // when - triggerPaletteEntry('create'); - - // then - const args = createSpy.getCall(0).args; - - expect(createSpy).to.have.been.called; - expect(args[0]).to.eq(canvas.getRootElement()); - expect(args[1]).to.eq('bpmn-create'); - })); - - }); - -}); - - -// helpers ////////// - -function triggerPaletteEntry(id) { - getBpmnJS().invoke(function(palette) { - var entry = palette.getEntries()[ id ]; - - if (entry && entry.action && entry.action.click) { - entry.action.click(createMoveEvent(0, 0)); - } - }); -} \ No newline at end of file From 089a2cb97e137b976b8db69de3648dfc7f5c718b Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 22 Mar 2023 16:54:23 +0100 Subject: [PATCH 300/989] chore(CHANGELOG): add breaking changes Co-Authored-By: Nico Rehwaldt <58601+nikku@users.noreply.github.com> --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f880db3ce..37ff19e905 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,13 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +* `FEAT`: move `create-append-anything` to [external module](https://github.com/bpmn-io/bpmn-js-create-append-anything) ([#1873](https://github.com/bpmn-io/bpmn-js/pull/1873), [#1862](https://github.com/bpmn-io/bpmn-js/issues/1862)) * `CHORE`: use `diagram-js@11.11.0` built-in selection after replace feature ([#1857](https://github.com/bpmn-io/bpmn-js/pull/1857)) +### Breaking Changes + +* The create/append anything features moved to an [external module](https://github.com/bpmn-io/bpmn-js-create-append-anything). Include it to restore the `v11` create/append behavior. + ## 11.5.0 * `FEAT`: add root elements to definitions when provided via `modeling#update(Moddle)Properties` From a1dfc706079b4f46babafbd168f9f195bb4280cf Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 29 Mar 2023 11:53:30 +0200 Subject: [PATCH 301/989] deps: update to diagram-js@11.12.0 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9301dece28..1bfc1820fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", - "diagram-js": "^11.11.0", + "diagram-js": "^11.12.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -3409,9 +3409,9 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.11.0.tgz", - "integrity": "sha512-+GJ6NPCihQBOqLKAjrXE+bQNYIhFjrCQgYHfPb22OcrYJ9k6vkTfJfG5PsyJ9P/AEIrXwTnrJAff/iKU1RgfAA==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.12.0.tgz", + "integrity": "sha512-5PbKj7cNRm7pDWcJbVKDjkl3Cxsr9PmFRVHEV3NnTWfIVjGKMjQ3eteX19TVcoHzxKJ83Ro8kHxQBXGzSLHXsQ==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", @@ -19090,9 +19090,9 @@ "dev": true }, "diagram-js": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.11.0.tgz", - "integrity": "sha512-+GJ6NPCihQBOqLKAjrXE+bQNYIhFjrCQgYHfPb22OcrYJ9k6vkTfJfG5PsyJ9P/AEIrXwTnrJAff/iKU1RgfAA==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.12.0.tgz", + "integrity": "sha512-5PbKj7cNRm7pDWcJbVKDjkl3Cxsr9PmFRVHEV3NnTWfIVjGKMjQ3eteX19TVcoHzxKJ83Ro8kHxQBXGzSLHXsQ==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", diff --git a/package.json b/package.json index e48cd7e334..827def240d 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ }, "dependencies": { "bpmn-moddle": "^8.0.0", - "diagram-js": "^11.11.0", + "diagram-js": "^11.12.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From 028e28036d8ab1de5e2c97061c2a6ab4a72c91d3 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 29 Mar 2023 11:55:36 +0200 Subject: [PATCH 302/989] chore(CHANGELOG): update to v12.0.0 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37ff19e905..a8d8695a3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,11 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 12.0.0 + * `FEAT`: move `create-append-anything` to [external module](https://github.com/bpmn-io/bpmn-js-create-append-anything) ([#1873](https://github.com/bpmn-io/bpmn-js/pull/1873), [#1862](https://github.com/bpmn-io/bpmn-js/issues/1862)) * `CHORE`: use `diagram-js@11.11.0` built-in selection after replace feature ([#1857](https://github.com/bpmn-io/bpmn-js/pull/1857)) +* `DEPS`: update to `diagram-js@11.12.0` ### Breaking Changes From 466a2ac0cc4a845b6d99b062f8a63fa1a01e2049 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 29 Mar 2023 13:26:03 +0200 Subject: [PATCH 303/989] 12.0.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1bfc1820fc..8f78e217f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "11.5.0", + "version": "12.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "11.5.0", + "version": "12.0.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 827def240d..2ead915154 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "11.5.0", + "version": "12.0.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 9c3d27e4daea00c47f9be55d5a163bd467cace4e Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 4 Apr 2023 14:16:26 +0200 Subject: [PATCH 304/989] fix: make constructors open for extension --- lib/BaseModeler.spec.ts | 15 ++++++++++++++- lib/BaseViewer.d.ts | 2 +- lib/BaseViewer.spec.ts | 12 ++++++++++-- lib/Modeler.spec.ts | 15 ++++++++++++++- lib/NavigatedViewer.spec.ts | 10 +++++++++- lib/Viewer.spec.ts | 10 +++++++++- 6 files changed, 57 insertions(+), 7 deletions(-) diff --git a/lib/BaseModeler.spec.ts b/lib/BaseModeler.spec.ts index 60bb6df8b1..a3b5b71275 100644 --- a/lib/BaseModeler.spec.ts +++ b/lib/BaseModeler.spec.ts @@ -6,4 +6,17 @@ const modeler = new BaseModeler({ container: 'container' }); -testViewer(modeler); \ No newline at end of file +testViewer(modeler); + + +const otherModeler = new BaseModeler({ + container: 'container' +}); + +const extendedModeler = new BaseModeler({ + container: 'container', + alignToOrigin: false, + propertiesPanel: { + attachTo: '#properties-panel' + } +}); \ No newline at end of file diff --git a/lib/BaseViewer.d.ts b/lib/BaseViewer.d.ts index d6663aa2ef..7cb0adde8f 100644 --- a/lib/BaseViewer.d.ts +++ b/lib/BaseViewer.d.ts @@ -20,7 +20,7 @@ export type BaseViewerOptions = { container?: string|HTMLElement; moddleExtensions?: ModdleExtensions; additionalModules?: ModuleDeclaration[]; -}; +} & Record; export type ModdleElement = Object; diff --git a/lib/BaseViewer.spec.ts b/lib/BaseViewer.spec.ts index 6690a8efac..69d351a013 100644 --- a/lib/BaseViewer.spec.ts +++ b/lib/BaseViewer.spec.ts @@ -6,9 +6,9 @@ import BaseViewer, { Events } from './BaseViewer'; import OverlaysModule from 'diagram-js/lib/features/overlays'; -let viewer = new BaseViewer(); +const viewer = new BaseViewer(); -viewer = new BaseViewer({ +const configuredViewer = new BaseViewer({ width: 100, height: 100, position: 'absolute', @@ -23,6 +23,14 @@ viewer = new BaseViewer({ testViewer(viewer); +const extendedViewer = new BaseViewer({ + container: 'container', + alignToOrigin: false, + propertiesPanel: { + attachTo: '#properties-panel' + } +}); + export function testViewer(viewer: BaseViewer) { viewer.importXML('', 'BPMNDiagram_1'); diff --git a/lib/Modeler.spec.ts b/lib/Modeler.spec.ts index b398d3acd4..3e73ada638 100644 --- a/lib/Modeler.spec.ts +++ b/lib/Modeler.spec.ts @@ -8,4 +8,17 @@ const modeler = new Modeler({ testViewer(modeler); -modeler.createDiagram(); \ No newline at end of file +modeler.createDiagram(); + + +const otherModeler = new Modeler({ + container: 'container' +}); + +const extendedModeler = new Modeler({ + container: 'container', + alignToOrigin: false, + propertiesPanel: { + attachTo: '#properties-panel' + } +}); \ No newline at end of file diff --git a/lib/NavigatedViewer.spec.ts b/lib/NavigatedViewer.spec.ts index 01c86d3515..63591fdf49 100644 --- a/lib/NavigatedViewer.spec.ts +++ b/lib/NavigatedViewer.spec.ts @@ -6,4 +6,12 @@ const viewer = new NavigatedViewer({ container: 'container' }); -testViewer(viewer); \ No newline at end of file +testViewer(viewer); + +const extendedViewer = new NavigatedViewer({ + container: 'container', + alignToOrigin: false, + propertiesPanel: { + attachTo: '#properties-panel' + } +}); \ No newline at end of file diff --git a/lib/Viewer.spec.ts b/lib/Viewer.spec.ts index 51a63474b9..0f7abc140e 100644 --- a/lib/Viewer.spec.ts +++ b/lib/Viewer.spec.ts @@ -6,4 +6,12 @@ const viewer = new Viewer({ container: 'container' }); -testViewer(viewer); \ No newline at end of file +testViewer(viewer); + +const extendedViewer = new Viewer({ + container: 'container', + alignToOrigin: false, + propertiesPanel: { + attachTo: '#properties-panel' + } +}); \ No newline at end of file From 3de7c6d07591d379ceddfb59a6bc7064d7350fe4 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 4 Apr 2023 14:09:42 +0200 Subject: [PATCH 305/989] docs: remove CMMN from powered by --- lib/util/PoweredByUtil.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/util/PoweredByUtil.js b/lib/util/PoweredByUtil.js index 5a541a803f..094112b4f6 100644 --- a/lib/util/PoweredByUtil.js +++ b/lib/util/PoweredByUtil.js @@ -63,7 +63,7 @@ var LIGHTBOX_MARKUP = BPMNIO_IMG + '' + '' + - 'Web-based tooling for BPMN, DMN and CMMN diagrams ' + + 'Web-based tooling for BPMN, DMN and forms ' + 'powered by bpmn.io.' + '' + '' + From f6cd4784b0c5beade07a00a5acfd05981d5ab5a5 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 4 Apr 2023 14:26:07 +0200 Subject: [PATCH 306/989] fix: correct `BaseViewer#saveXML` definition Related to https://github.com/bpmn-io/bpmn-js/pull/1881 --- lib/BaseViewer.d.ts | 2 +- lib/BaseViewer.spec.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/BaseViewer.d.ts b/lib/BaseViewer.d.ts index 7cb0adde8f..c293103cd0 100644 --- a/lib/BaseViewer.d.ts +++ b/lib/BaseViewer.d.ts @@ -272,7 +272,7 @@ export default class BaseViewer extends Diagram { * * @return A promise resolving with the XML. */ - saveXML(options: SaveXMLOptions): Promise; + saveXML(options?: SaveXMLOptions): Promise; /** * Export the currently displayed BPMN 2.0 diagram as diff --git a/lib/BaseViewer.spec.ts b/lib/BaseViewer.spec.ts index 69d351a013..21b6456f82 100644 --- a/lib/BaseViewer.spec.ts +++ b/lib/BaseViewer.spec.ts @@ -89,6 +89,10 @@ export function testViewer(viewer: BaseViewer) { console.log(error); }); + viewer.saveXML(); + + viewer.saveSVG(); + viewer.getModules(); viewer.clear(); From 44a41d1f963371c4c56eafe26484de3fa3c6c815 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 4 Apr 2023 16:07:47 +0200 Subject: [PATCH 307/989] chore(CHANGELOG): update to v12.1.0 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a8d8695a3d..3c3bfd787a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 12.1.0 + +* `FIX`: correct `Viewer#saveXML` type definition ([#1885](https://github.com/bpmn-io/bpmn-js/pull/1885)) +* `FIX`: correct `Viewer` constructor type definition ([#1882](https://github.com/bpmn-io/bpmn-js/issues/1882)) + ## 12.0.0 * `FEAT`: move `create-append-anything` to [external module](https://github.com/bpmn-io/bpmn-js-create-append-anything) ([#1873](https://github.com/bpmn-io/bpmn-js/pull/1873), [#1862](https://github.com/bpmn-io/bpmn-js/issues/1862)) From ea4d6bc71c610c3fff091e1a534eb8517011f778 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 4 Apr 2023 16:10:43 +0200 Subject: [PATCH 308/989] 12.1.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8f78e217f1..f58aa84beb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "12.0.0", + "version": "12.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "12.0.0", + "version": "12.1.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index 2ead915154..a7e09868ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "12.0.0", + "version": "12.1.0", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From 0915ae869ad982c5e3bda404cf1dbbbcb6cbc519 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 11 Apr 2023 11:30:30 +0200 Subject: [PATCH 309/989] deps: update to diagram-js@11.13.0 --- package-lock.json | 78 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index f58aa84beb..59d3e75006 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", - "diagram-js": "^11.12.0", + "diagram-js": "^11.13.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", @@ -2877,9 +2877,9 @@ "dev": true }, "node_modules/component-event": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.1.4.tgz", - "integrity": "sha512-GMwOG8MnUHP1l8DZx1ztFO0SJTFnIzZnBDkXAj8RM2ntV2A6ALlDxgbMY1Fvxlg6WPQ+5IM/a6vg4PEYbjg/Rw==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.2.1.tgz", + "integrity": "sha512-wGA++isMqiDq1jPYeyv2as/Bt/u+3iLW0rEa+8NQ82jAv3TgqMiCM+B2SaBdn2DfLilLjjq736YcezihRYhfxw==" }, "node_modules/concat-map": { "version": "0.0.1", @@ -3409,20 +3409,20 @@ "dev": true }, "node_modules/diagram-js": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.12.0.tgz", - "integrity": "sha512-5PbKj7cNRm7pDWcJbVKDjkl3Cxsr9PmFRVHEV3NnTWfIVjGKMjQ3eteX19TVcoHzxKJ83Ro8kHxQBXGzSLHXsQ==", + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.13.0.tgz", + "integrity": "sha512-10jE//ZN1BHUCvDpzOjqULyRyZPCmNjBdNsF+Q77w8zFYD8z9VBB7TJrWfDblPRgPins9bj2HA+MfJK5f+ZsLw==", "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", "didi": "^9.0.2", "hammerjs": "^2.0.1", "inherits-browser": "^0.1.0", - "min-dash": "^4.0.0", - "min-dom": "^4.0.2", + "min-dash": "^4.1.0", + "min-dom": "^4.1.0", "object-refs": "^0.3.0", "path-intersection": "^2.2.1", - "tiny-svg": "^3.0.0" + "tiny-svg": "^3.0.1" } }, "node_modules/diagram-js-direct-editing": { @@ -9016,16 +9016,16 @@ } }, "node_modules/min-dash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-4.0.0.tgz", - "integrity": "sha512-piIvVJ/nxuA4+LpnYIzF6oCtRvdtDvQJteSC+H768H2UvPKFKIt5oiJnUVtr0ZdchneXTcvUZ91vIrvWVIN0AA==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-4.1.0.tgz", + "integrity": "sha512-wAOONxERkwcJQXJvrxsqyOFci4M0355GDS8feDfsSp8GhS4yontVfONYpFWXHjxQrnisRZdQHQ4ES2LO/1kCpw==" }, "node_modules/min-dom": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.0.3.tgz", - "integrity": "sha512-5zQyCMe8rtGiDIRjfGeqnF2YPJ7OAPFdJQeC7MakHais3dh4VG4PV2a0FacziKTzJjYK5qnPKm2sq1wSXB1wTQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.1.0.tgz", + "integrity": "sha512-1lj1EyoSwY/UmTeT/hhPiZTsq+vK9D+8FAJ/53iK5jT1otkG9rJTixSKdjmTieEvdfES+sKbbTptzaQJhnacjA==", "dependencies": { - "component-event": "^0.1.4", + "component-event": "^0.2.1", "domify": "^1.4.1", "min-dash": "^4.0.0" } @@ -14822,9 +14822,9 @@ "dev": true }, "node_modules/tiny-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.0.0.tgz", - "integrity": "sha512-+u6VomQO7MbI7CQe5q1IwNePpbVKG/HVdUQBmaEpSCdP/QmeyjhrS6WKFsNetXlvf9LWu/f5woRqjMdxBMe/0w==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.0.1.tgz", + "integrity": "sha512-P8T4iwiW1t95vpHVHqrD36Brn7TqFYCPSHIWk9WLJtYK1X4aDd+5cgqcAADIWSjf1/i5idKnpCh9mim8hEdRBg==" }, "node_modules/tmp": { "version": "0.2.1", @@ -18677,9 +18677,9 @@ "dev": true }, "component-event": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.1.4.tgz", - "integrity": "sha512-GMwOG8MnUHP1l8DZx1ztFO0SJTFnIzZnBDkXAj8RM2ntV2A6ALlDxgbMY1Fvxlg6WPQ+5IM/a6vg4PEYbjg/Rw==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.2.1.tgz", + "integrity": "sha512-wGA++isMqiDq1jPYeyv2as/Bt/u+3iLW0rEa+8NQ82jAv3TgqMiCM+B2SaBdn2DfLilLjjq736YcezihRYhfxw==" }, "concat-map": { "version": "0.0.1", @@ -19090,20 +19090,20 @@ "dev": true }, "diagram-js": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.12.0.tgz", - "integrity": "sha512-5PbKj7cNRm7pDWcJbVKDjkl3Cxsr9PmFRVHEV3NnTWfIVjGKMjQ3eteX19TVcoHzxKJ83Ro8kHxQBXGzSLHXsQ==", + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.13.0.tgz", + "integrity": "sha512-10jE//ZN1BHUCvDpzOjqULyRyZPCmNjBdNsF+Q77w8zFYD8z9VBB7TJrWfDblPRgPins9bj2HA+MfJK5f+ZsLw==", "requires": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", "didi": "^9.0.2", "hammerjs": "^2.0.1", "inherits-browser": "^0.1.0", - "min-dash": "^4.0.0", - "min-dom": "^4.0.2", + "min-dash": "^4.1.0", + "min-dom": "^4.1.0", "object-refs": "^0.3.0", "path-intersection": "^2.2.1", - "tiny-svg": "^3.0.0" + "tiny-svg": "^3.0.1" } }, "diagram-js-direct-editing": { @@ -23213,16 +23213,16 @@ "dev": true }, "min-dash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-4.0.0.tgz", - "integrity": "sha512-piIvVJ/nxuA4+LpnYIzF6oCtRvdtDvQJteSC+H768H2UvPKFKIt5oiJnUVtr0ZdchneXTcvUZ91vIrvWVIN0AA==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-4.1.0.tgz", + "integrity": "sha512-wAOONxERkwcJQXJvrxsqyOFci4M0355GDS8feDfsSp8GhS4yontVfONYpFWXHjxQrnisRZdQHQ4ES2LO/1kCpw==" }, "min-dom": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.0.3.tgz", - "integrity": "sha512-5zQyCMe8rtGiDIRjfGeqnF2YPJ7OAPFdJQeC7MakHais3dh4VG4PV2a0FacziKTzJjYK5qnPKm2sq1wSXB1wTQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.1.0.tgz", + "integrity": "sha512-1lj1EyoSwY/UmTeT/hhPiZTsq+vK9D+8FAJ/53iK5jT1otkG9rJTixSKdjmTieEvdfES+sKbbTptzaQJhnacjA==", "requires": { - "component-event": "^0.1.4", + "component-event": "^0.2.1", "domify": "^1.4.1", "min-dash": "^4.0.0" } @@ -27638,9 +27638,9 @@ "dev": true }, "tiny-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.0.0.tgz", - "integrity": "sha512-+u6VomQO7MbI7CQe5q1IwNePpbVKG/HVdUQBmaEpSCdP/QmeyjhrS6WKFsNetXlvf9LWu/f5woRqjMdxBMe/0w==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.0.1.tgz", + "integrity": "sha512-P8T4iwiW1t95vpHVHqrD36Brn7TqFYCPSHIWk9WLJtYK1X4aDd+5cgqcAADIWSjf1/i5idKnpCh9mim8hEdRBg==" }, "tmp": { "version": "0.2.1", diff --git a/package.json b/package.json index a7e09868ed..fb3bb8056d 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ }, "dependencies": { "bpmn-moddle": "^8.0.0", - "diagram-js": "^11.12.0", + "diagram-js": "^11.13.0", "diagram-js-direct-editing": "^2.0.0", "ids": "^1.0.0", "inherits-browser": "^0.1.0", From f8a78e948a1a9ee9080b4387c250707e312edc06 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Tue, 11 Apr 2023 11:30:52 +0200 Subject: [PATCH 310/989] chore(CHANGELOG): update to v12.1.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c3bfd787a..d6f29fdd86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen ___Note:__ Yet to be released changes appear here._ +## 12.1.1 + +* `DEPS`: update to `diagram-js@11.13.0` + ## 12.1.0 * `FIX`: correct `Viewer#saveXML` type definition ([#1885](https://github.com/bpmn-io/bpmn-js/pull/1885)) From 5d4019299477336e79e52304a84c97502fcc9bd6 Mon Sep 17 00:00:00 2001 From: Beatriz Mendes Date: Wed, 12 Apr 2023 10:16:18 +0200 Subject: [PATCH 311/989] 12.1.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 59d3e75006..8a06daf63f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bpmn-js", - "version": "12.1.0", + "version": "12.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bpmn-js", - "version": "12.1.0", + "version": "12.1.1", "license": "SEE LICENSE IN LICENSE", "dependencies": { "bpmn-moddle": "^8.0.0", diff --git a/package.json b/package.json index fb3bb8056d..b19d402480 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bpmn-js", - "version": "12.1.0", + "version": "12.1.1", "description": "A bpmn 2.0 toolkit and web modeler", "main": "index.js", "files": [ From c8463c39fd4d49736ed2f794bea23d8358e225e9 Mon Sep 17 00:00:00 2001 From: Philipp Date: Wed, 8 Mar 2023 23:08:18 +0100 Subject: [PATCH 312/989] feat: add type declarations for modeling --- lib/features/modeling/ElementFactory.d.ts | 114 +++++++++++++++ lib/features/modeling/ElementFactory.js | 60 +++++++- lib/features/modeling/ElementFactory.test.ts | 84 +++++++++++ lib/features/modeling/Modeling.d.ts | 140 +++++++++++++++++++ lib/features/modeling/Modeling.js | 120 +++++++++++++--- lib/features/modeling/Modeling.test.ts | 77 ++++++++++ lib/util/Types.js | 5 + lib/util/Types.ts | 4 + 8 files changed, 582 insertions(+), 22 deletions(-) create mode 100644 lib/features/modeling/ElementFactory.d.ts create mode 100644 lib/features/modeling/ElementFactory.test.ts create mode 100644 lib/features/modeling/Modeling.d.ts create mode 100644 lib/features/modeling/Modeling.test.ts create mode 100644 lib/util/Types.js create mode 100644 lib/util/Types.ts diff --git a/lib/features/modeling/ElementFactory.d.ts b/lib/features/modeling/ElementFactory.d.ts new file mode 100644 index 0000000000..8579bdf2a7 --- /dev/null +++ b/lib/features/modeling/ElementFactory.d.ts @@ -0,0 +1,114 @@ +import { default as BaseElementFactory } from 'diagram-js/lib/core/ElementFactory'; + +import { TranslateFunction } from 'diagram-js/lib/i18n/translate/translate'; + +import { + Base, + Connection, + ModelAttrsConnection, + ModelAttrsRoot, + ModelAttrsShape, + ModelTypeConnection, + ModelTypeRoot, + ModelTypeShape, + Root, + Shape +} from 'diagram-js/lib/model'; + +import { Dimension } from 'diagram-js/lib/util/Types'; + +import BpmnFactory from './BpmnFactory'; + +import { Moddle } from '../../BaseModeler'; +import { ModdleElement } from '../../BaseViewer'; + +declare module 'diagram-js/lib/model' { + interface ModelAttrsShape { + + /** + * The type of BPMN element. + */ + type: string; + + processRef?: ModdleElement; + isInterrupting?: boolean; + isForCompensation?: boolean; + isExpanded?: boolean; + triggeredByEvent?: boolean; + cancelActivity?: boolean; + + /** + * The type of the optional event definition. + */ + eventDefinitionType?: string; + } + + interface ModelAttrsConnection { + + /** + * The type of BPMN element. + */ + type: string; + + associationDirection?: 'None' | 'One' | 'Both'; + } +} + +export default class ElementFactory extends BaseElementFactory { + + /** + * A BPMN-aware factory for diagram elements. + * + * @param bpmnFactory + * @param moddle + * @param translate + */ + constructor(bpmnFactory: BpmnFactory, moddle: Moddle, translate: TranslateFunction); + + /** + * Create a BPMN connection. + * + * @param attrs The attributes of the connection to be created. + * + * @return The created connection. + */ + createBpmnElement(elementType: ModelTypeConnection, attrs: ModelAttrsConnection): Connection; + + /** + * Create a BPMN root. + * + * @param attrs The attributes of the root to be created. + * + * @return The created root. + */ + createBpmnElement(elementType: ModelTypeRoot, attrs: ModelAttrsRoot): Root; + + /** + * Create a BPMN shape. + * + * @param attrs The attributes of the shape to be created. + * + * @return The created shape. + */ + createBpmnElement(elementType: ModelTypeShape, attrs: ModelAttrsShape): Shape; + + /** + * Get the default size of a diagram element. + * + * @param element The element. + * @param di The DI. + * + * @returns Default width and height of the element. + */ + getDefaultSize(element: Base, di: ModdleElement): Dimension; + + /** + * Create participant. + * + * @param attrs Attributes or whether the participant is + * expanded. + * + * @returns The created participant. + */ + createParticipantShape(attrs?: ModelAttrsShape | boolean): Shape; +} \ No newline at end of file diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index e09b055747..a11ff1b97d 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -32,9 +32,37 @@ import { ensureCompatDiRef } from '../../util/CompatibilityUtil'; +/** + * @typedef {import('diagram-js/lib/model').Base} Base + * @typedef {import('diagram-js/lib/model').Connection} Connection + * @typedef {import('diagram-js/lib/model').Root} Root + * @typedef {import('diagram-js/lib/model').Shape} Shape + * @typedef {import('diagram-js/lib/model').ModelAttrs} ModelAttrs + * @typedef {import('diagram-js/lib/model').ModelAttrsConnection} ModelAttrsConnection + * @typedef {import('diagram-js/lib/model').ModelAttrsRoot} ModelAttrsRoot + * @typedef {import('diagram-js/lib/model').ModelAttrsShape} ModelAttrsShape + * @typedef {import('diagram-js/lib/model').ModelType} ModelType + * @typedef {import('diagram-js/lib/model').ModelTypeConnection} ModelTypeConnection + * @typedef {import('diagram-js/lib/model').ModelTypeRoot} ModelTypeRoot + * @typedef {import('diagram-js/lib/model').ModelTypeShape} ModelTypeShape + * + * @typedef {import('diagram-js/lib/i18n/translate/translate').TranslateFunction} TranslateFunction + * + * @typedef {import('diagram-js/lib/util/Types').Dimensions} Dimensions + * + * @typedef {import('./BpmnFactory').default} BpmnFactory + * @typedef {import('./ElementFactory').ModelAttrsBPMN} ModelAttrsBPMN + * + * @typedef {import('../../BaseModeler').Moddle} Moddle + * @typedef {import('../../BaseViewer').ModdleElement} ModdleElement + */ /** - * A bpmn-aware factory for diagram-js shapes + * A BPMN-aware factory for diagram elements. + * + * @param {BpmnFactory} bpmnFactory + * @param {Moddle} moddle + * @param {TranslateFunction} translate */ export default function ElementFactory(bpmnFactory, moddle, translate) { BaseElementFactory.call(this); @@ -54,6 +82,14 @@ ElementFactory.$inject = [ ElementFactory.prototype.baseCreate = BaseElementFactory.prototype.create; +/** + * Create an element. + * + * @param {ModelType} elementType The type of the element to be created. + * @param {ModelAttrs} attrs The attributes to create the element with. + * + * @returns {Base} The created diagram element. + */ ElementFactory.prototype.create = function(elementType, attrs) { // no special magic for labels, @@ -67,6 +103,14 @@ ElementFactory.prototype.create = function(elementType, attrs) { return this.createBpmnElement(elementType, attrs); }; +/** + * Create a BPMN-specific element. + * + * @param {ModelTypeConnection|ModelTypeRoot|ModelTypeShape} elementType The type of the element to be created. + * @param {ModelAttrsConnection|ModelAttrsRoot|ModelAttrsShape} attrs The attributes to create the element with. + * + * @returns {Connection|Root|Shape} The created diagram element. + */ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { var size, translate = this._translate; @@ -169,7 +213,14 @@ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { return this.baseCreate(elementType, attrs); }; - +/** + * Get the default size of a diagram element. + * + * @param {Base} element The element. + * @param {ModdleElement} di The DI. + * + * @returns {Dimensions} Default width and height of the element. + */ ElementFactory.prototype.getDefaultSize = function(element, di) { var bo = getBusinessObject(element); @@ -230,9 +281,10 @@ ElementFactory.prototype.getDefaultSize = function(element, di) { /** * Create participant. * - * @param {boolean|Object} [attrs] attrs + * @param {boolean|Object} [attrs] Attributes or whether the participant is + * expanded. * - * @returns {djs.model.Shape} + * @returns {Shape} The created participant. */ ElementFactory.prototype.createParticipantShape = function(attrs) { diff --git a/lib/features/modeling/ElementFactory.test.ts b/lib/features/modeling/ElementFactory.test.ts new file mode 100644 index 0000000000..46275d6397 --- /dev/null +++ b/lib/features/modeling/ElementFactory.test.ts @@ -0,0 +1,84 @@ +import Modeler from '../../Modeler'; + +import ElementFactory from './ElementFactory'; + +const modeler = new Modeler(); + +const elementFactory = modeler.get('elementFactory'); + +const shape1 = elementFactory.create('shape', { + type: 'bpmn:Task', + id: 'shape1', + x: 100, + y: 100, + width: 100, + height: 100 +}); + +const shape2 = elementFactory.create('shape', { + type: 'bpmn:Task', + id: 'shape2', + x: 100, + y: 100, + width: 100, + height: 100 +}); + +const connection = elementFactory.create('connection', { + type: 'bpmn:SequenceFlow', + id: 'connection', + source: shape1, + target: shape2, + waypoints: [] +}); + +elementFactory.create('root', { + type: 'bpmn:Process', + id: 'root' +}); + +elementFactory.create('label', { + type: 'bpmn:Task', + id: 'label' +}); + +elementFactory.create('shape', { + type: 'bpmn:Task' +}); + +elementFactory.create('connection', { + type: 'bpmn:SequenceFlow' +}); + +elementFactory.create('root', { + type: 'bpmn:Process' +}); + +elementFactory.create('label', { + type: 'bpmn:Task' +}); + +elementFactory.createBpmnElement('connection', { + type: 'bpmn:SequenceFlow' +}); + +elementFactory.createBpmnElement('root', { + type: 'bpmn:Process' +}); + +elementFactory.createBpmnElement('shape', { + type: 'bpmn:Task' +}); + +elementFactory.getDefaultSize(shape1, { type: 'bpmndi:BPMNShape' }); + +elementFactory.getDefaultSize(connection, { type: 'bpmndi:BPMNEdge' }); + +elementFactory.createParticipantShape(); + +elementFactory.createParticipantShape(true); + +elementFactory.createParticipantShape({ + type: 'bpmn:Participant', + isExpanded: true +}); \ No newline at end of file diff --git a/lib/features/modeling/Modeling.d.ts b/lib/features/modeling/Modeling.d.ts new file mode 100644 index 0000000000..5bc1d86df4 --- /dev/null +++ b/lib/features/modeling/Modeling.d.ts @@ -0,0 +1,140 @@ +import { default as BaseModeling } from 'diagram-js/lib/features/modeling/Modeling'; + +import { ModdleElement } from '../../BaseViewer'; + +import BpmnRules from '../rules/BpmnRules'; +import CommandStack from 'diagram-js/lib/command/CommandStack'; +import ElementFactory from './ElementFactory'; +import EventBus from 'diagram-js/lib/core/EventBus'; + +import { + Base, + Root, + Shape +} from 'diagram-js/lib/model'; + +import { Rect } from 'diagram-js/lib/util/Types'; + +import { Colors } from '../../util/Types'; + +export interface UpdateLabelHints { + + /** + * Whether to remove the shape if the updated label is empty. + */ + removeShape: boolean; +} + +export default class Modeling extends BaseModeling { + + /** + * The BPMN 2.0 modeling entry point. + * + * @param eventBus + * @param elementFactory + * @param commandStack + * @param bpmnRules + */ + constructor(eventBus: EventBus, elementFactory: ElementFactory, commandStack: CommandStack, bpmnRules: BpmnRules); + + /** + * Update an element's label. + * + * @param element The element. + * @param newLabel The new label. + * @param newBounds The optional bounds of the label. + * @param hints The optional hints. + */ + updateLabel(element: Base, newLabel: string, newBounds?: Rect, hints?: UpdateLabelHints): void; + + /** + * Update a model element's properties. + * + * @param element The element. + * @param moddleElement The model element. + * @param properties The updated properties. + */ + updateModdleProperties(element: Base, moddleElement: ModdleElement, properties: Object): void; + + /** + * Update an element's properties. + * + * @param element The element. + * @param properties The updated properties. + */ + updateProperties(element: Base, properties: Object): void; + + /** + * Resize a lane. + * + * @param laneShape The lane. + * @param newBounds The new bounds of the lane. + * @param balanced Wether to resize neighboring lanes. + */ + resizeLane(laneShape: Shape, newBounds: Rect, balanced?: boolean): void; + + /** + * Add a lane. + * + * @param targetLaneShape The shape to add the lane to. + * @param location The location. + * + * @return The added lane. + */ + addLane(targetLaneShape: Shape, location: 'top' | 'bottom'): Shape; + + /** + * Split a lane. + * + * @param targetLane The lane to split. + * @param count The number of lanes to split the lane into. Must not + * exceed the number of existing lanes. + */ + splitLane(targetLane: Shape, count: number): void; + + /** + * Turn a process into a collaboration. + * + * @return The root of the collaboration. + */ + makeCollaboration(): Root; + + /** + * Transform a collaboration into a process. + * + * @return {Root} The root of the process. + */ + makeProcess(): Root; + + /** + * Update the referenced lanes of each flow node. + * + * @param flowNodeShapes The flow nodes to update. + * @param laneShapes The lanes. + */ + updateLaneRefs(flowNodeShapes: Shape[], laneShapes: Shape[]): void; + + /** + * Claim an ID. + * + * @param id The ID to claim. + * @param moddleElement The model element the ID is claimed for. + */ + claimId(id: string, moddleElement: ModdleElement): void; + + /** + * Unclaim an ID. + * + * @param id The ID to unclaim. + * @param moddleElement The model element the ID is claimed for. + */ + unclaimId(id: string, moddleElement: ModdleElement): void; + + /** + * Set the color(s) of one or many elements. + * + * @param elements The elements to set the color(s) for. + * @param colors The color(s) to set. + */ + setColor(elements: Base[], colors: Colors): void; +} \ No newline at end of file diff --git a/lib/features/modeling/Modeling.js b/lib/features/modeling/Modeling.js index c2888d738b..ddc394a46f 100644 --- a/lib/features/modeling/Modeling.js +++ b/lib/features/modeling/Modeling.js @@ -14,9 +14,27 @@ import SetColorHandler from './cmd/SetColorHandler'; import UpdateLabelHandler from '../label-editing/cmd/UpdateLabelHandler'; +/** + * @typedef {import('../rules/BpmnRules').default} BpmnRules + * @typedef {import('diagram-js/lib/command/CommandStack').default} CommandStack + * @typedef {import('./ElementFactory').default} ElementFactory + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * + * @typedef {import('diagram-js/lib/model').Base} Base + * @typedef {import('diagram-js/lib/model').Root} Root + * @typedef {import('diagram-js/lib/model').Shape} Shape + * + * @typedef {import('diagram-js/lib/util/Types').Rect} Rect + * + * @typedef {import('../../BaseViewer').ModdleElement} ModdleElement + * + * @typedef {import('./Modeling').UpdateLabelHints} UpdateLabelHints + * + * @typedef {import('../../util/Types').Colors} Colors + */ /** - * BPMN 2.0 modeling features activator + * The BPMN 2.0 modeling entry point. * * @param {EventBus} eventBus * @param {ElementFactory} elementFactory @@ -24,8 +42,11 @@ import UpdateLabelHandler from '../label-editing/cmd/UpdateLabelHandler'; * @param {BpmnRules} bpmnRules */ export default function Modeling( - eventBus, elementFactory, commandStack, - bpmnRules) { + eventBus, + elementFactory, + commandStack, + bpmnRules +) { BaseModeling.call(this, eventBus, elementFactory, commandStack); @@ -59,7 +80,14 @@ Modeling.prototype.getHandlers = function() { return handlers; }; - +/** + * Update an element's label. + * + * @param {Base} element The element. + * @param {string} newLabel The new label. + * @param {Rect} [newBounds] The optional bounds of the label. + * @param {UpdateLabelHints} [hints] The optional hints. + */ Modeling.prototype.updateLabel = function(element, newLabel, newBounds, hints) { this._commandStack.execute('element.updateLabel', { element: element, @@ -85,7 +113,13 @@ Modeling.prototype.connect = function(source, target, attrs, hints) { return this.createConnection(source, target, attrs, source.parent, hints); }; - +/** + * Update a model element's properties. + * + * @param {Base} element The element. + * @param {ModdleElement} moddleElement The model element. + * @param {Object} properties The updated properties. + */ Modeling.prototype.updateModdleProperties = function(element, moddleElement, properties) { this._commandStack.execute('element.updateModdleProperties', { element: element, @@ -94,6 +128,12 @@ Modeling.prototype.updateModdleProperties = function(element, moddleElement, pro }); }; +/** + * Update an element's properties. + * + * @param {Base} element The element. + * @param {Object} properties The updated properties. + */ Modeling.prototype.updateProperties = function(element, properties) { this._commandStack.execute('element.updateProperties', { element: element, @@ -101,6 +141,13 @@ Modeling.prototype.updateProperties = function(element, properties) { }); }; +/** + * Resize a lane. + * + * @param {Shape} laneShape The lane. + * @param {Rect} newBounds The new bounds of the lane. + * @param {boolean} [balanced] Wether to resize neighboring lanes. + */ Modeling.prototype.resizeLane = function(laneShape, newBounds, balanced) { this._commandStack.execute('lane.resize', { shape: laneShape, @@ -109,6 +156,14 @@ Modeling.prototype.resizeLane = function(laneShape, newBounds, balanced) { }); }; +/** + * Add a lane. + * + * @param {Shape} targetLaneShape The shape to add the lane to. + * @param {string} location The location. + * + * @return {Shape} The added lane. + */ Modeling.prototype.addLane = function(targetLaneShape, location) { var context = { shape: targetLaneShape, @@ -120,6 +175,13 @@ Modeling.prototype.addLane = function(targetLaneShape, location) { return context.newLane; }; +/** + * Split a lane. + * + * @param {Shape} targetLane The lane to split. + * @param {number} count The number of lanes to split the lane into. Must not + * exceed the number of existing lanes. + */ Modeling.prototype.splitLane = function(targetLane, count) { this._commandStack.execute('lane.split', { shape: targetLane, @@ -128,9 +190,9 @@ Modeling.prototype.splitLane = function(targetLane, count) { }; /** - * Transform the current diagram into a collaboration. + * Turn a process into a collaboration. * - * @return {djs.model.Root} the new root element + * @return {Root} The root of the collaboration. */ Modeling.prototype.makeCollaboration = function() { @@ -147,18 +209,10 @@ Modeling.prototype.makeCollaboration = function() { return collaborationElement; }; -Modeling.prototype.updateLaneRefs = function(flowNodeShapes, laneShapes) { - - this._commandStack.execute('lane.updateRefs', { - flowNodeShapes: flowNodeShapes, - laneShapes: laneShapes - }); -}; - /** - * Transform the current diagram into a process. + * Transform a collaboration into a process. * - * @return {djs.model.Root} the new root element + * @return {Root} The root of the process. */ Modeling.prototype.makeProcess = function() { @@ -173,7 +227,26 @@ Modeling.prototype.makeProcess = function() { this._commandStack.execute('canvas.updateRoot', context); }; +/** + * Update the referenced lanes of each flow node. + * + * @param {Shape[]} flowNodeShapes The flow nodes to update. + * @param {Shape[]} laneShapes The lanes. + */ +Modeling.prototype.updateLaneRefs = function(flowNodeShapes, laneShapes) { + + this._commandStack.execute('lane.updateRefs', { + flowNodeShapes: flowNodeShapes, + laneShapes: laneShapes + }); +}; +/** + * Claim an ID. + * + * @param {string} id The ID to claim. + * @param {ModdleElement} moddleElement The model element the ID is claimed for. + */ Modeling.prototype.claimId = function(id, moddleElement) { this._commandStack.execute('id.updateClaim', { id: id, @@ -182,7 +255,12 @@ Modeling.prototype.claimId = function(id, moddleElement) { }); }; - +/** + * Unclaim an ID. + * + * @param {string} id The ID to unclaim. + * @param {ModdleElement} moddleElement The model element the ID is claimed for. + */ Modeling.prototype.unclaimId = function(id, moddleElement) { this._commandStack.execute('id.updateClaim', { id: id, @@ -190,6 +268,12 @@ Modeling.prototype.unclaimId = function(id, moddleElement) { }); }; +/** + * Set the color(s) of one or many elements. + * + * @param {Base[]} elements The elements to set the color(s) for. + * @param {Colors} colors The color(s) to set. + */ Modeling.prototype.setColor = function(elements, colors) { if (!elements.length) { elements = [ elements ]; diff --git a/lib/features/modeling/Modeling.test.ts b/lib/features/modeling/Modeling.test.ts new file mode 100644 index 0000000000..c5401d7a95 --- /dev/null +++ b/lib/features/modeling/Modeling.test.ts @@ -0,0 +1,77 @@ +import Modeler from '../../Modeler'; + +import ElementFactory from './ElementFactory'; +import Modeling from './Modeling'; + +const modeler = new Modeler(); + +const elementFactory = modeler.get('elementFactory'); + +const connection = elementFactory.create('connection', { type: 'bpmn:SequenceFlow' }), + root = elementFactory.create('root', { type: 'bpmn:Process' }), + shape = elementFactory.create('shape', { type: 'bpmn:Task' }); + +const modeling = modeler.get('modeling'); + +modeling.updateLabel(shape, 'foo'); + +modeling.updateLabel(shape, 'foo', { + x: 100, + y: 100, + width: 100, + height: 100 +}); + +modeling.updateLabel(shape, 'foo', { + x: 100, + y: 100, + width: 100, + height: 100 +}, { removeShape: true }); + +modeling.updateModdleProperties(shape, { type: 'bpmn:ExtensionElements' }, { + values: [] +}); + +modeling.updateProperties(shape, { + name: 'foo' +}); + +const participant = elementFactory.create('shape', { type: 'bpmn:Participant'}), + lane = elementFactory.create('shape', { type: 'bpmn:Lane'}); + +modeling.resizeLane(lane, { + x: 100, + y: 100, + width: 100, + height: 100 +}); + +modeling.resizeLane(lane, { + x: 100, + y: 100, + width: 100, + height: 100 +}, true); + +modeling.addLane(participant, 'top'); + +modeling.addLane(participant, 'bottom'); + +modeling.splitLane(lane, 3); + +modeling.makeCollaboration(); + +modeling.makeProcess(); + +modeling.updateLaneRefs([ shape ], [ lane ]); + +modeling.claimId('foo', shape.businessObject); + +modeling.unclaimId('foo', shape.businessObject); + +modeling.setColor([ shape ], { fill: 'red', stroke: 'green' }); + +modeling.setColor([ shape ], { fill: 'red' }); + +modeling.setColor([ shape ], { stroke: 'green' }); \ No newline at end of file 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 From b15bad80da39384aa8e7b24ffa0bd25a74877b5c Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 11:38:15 +0100 Subject: [PATCH 313/989] chore(draw): type `TextRenderer` --- lib/draw/TextRenderer.d.ts | 52 +++++++++++++++++++++++++++++++++++ lib/draw/TextRenderer.js | 32 +++++++++++++-------- lib/draw/TextRenderer.spec.ts | 27 ++++++++++++++++++ 3 files changed, 100 insertions(+), 11 deletions(-) create mode 100644 lib/draw/TextRenderer.d.ts create mode 100644 lib/draw/TextRenderer.spec.ts diff --git a/lib/draw/TextRenderer.d.ts b/lib/draw/TextRenderer.d.ts new file mode 100644 index 0000000000..ec8411c4fb --- /dev/null +++ b/lib/draw/TextRenderer.d.ts @@ -0,0 +1,52 @@ +import { Dimensions } from "diagram-js/lib/util/Types"; + +import { TextLayoutConfig } from 'diagram-js/lib/util/Text'; + +export type TextRendererStyle = { + fontFamily: string, + fontSize: number, + fontWeight: string, + lineHeight: number +}; + +export type TextRendererConfig = { + defaultStyle?: Partial, + externalStyle?: Partial +} + + +/** + * Renders text and computes text bounding boxes. + */ +export default class TextRenderer { + + constructor(config?: TextRendererConfig); + + /** + * Get the new bounds of an externally rendered, + * layouted label. + */ + getExternalLabelBounds(bounds: Dimensions, text: string): Dimensions; + + /** + * Get the new bounds of text annotation. + */ + getTextAnnotationBounds(bounds: Dimensions, text: string): Dimensions; + + /** + * Create a layouted text element. + * + * @return rendered text + */ + createText(text: string, options: TextLayoutConfig): SVGElement; + + /** + * Get default text style. + */ + getDefaultStyle(): TextRendererStyle; + + /** + * Get the external text style. + */ + getExternalStyle(): TextRendererStyle; +} \ No newline at end of file diff --git a/lib/draw/TextRenderer.js b/lib/draw/TextRenderer.js index e70b80967c..05ad896d40 100644 --- a/lib/draw/TextRenderer.js +++ b/lib/draw/TextRenderer.js @@ -7,7 +7,19 @@ var LINE_HEIGHT_RATIO = 1.2; var MIN_TEXT_ANNOTATION_HEIGHT = 30; - +/** + * @typedef { import('./TextRenderer').TextRendererConfig } TextRendererConfig + * @typedef { import('diagram-js/lib/util/Text').TextLayoutConfig } TextLayoutConfig + * + * @typedef { import('diagram-js/lib/util/Types').Rect } Rect + */ + + +/** + * Renders text and computes text bounding boxes. + * + * @param {TextRendererConfig} config + */ export default function TextRenderer(config) { var defaultStyle = assign({ @@ -31,19 +43,17 @@ export default function TextRenderer(config) { * Get the new bounds of an externally rendered, * layouted label. * - * @param {Bounds} bounds - * @param {string} text + * @param {Rect} bounds + * @param {string} text * - * @return {Bounds} + * @return {Rect} */ this.getExternalLabelBounds = function(bounds, text) { var layoutedDimensions = textUtil.getDimensions(text, { box: { width: 90, - height: 30, - x: bounds.width / 2 + bounds.x, - y: bounds.height / 2 + bounds.y + height: 30 }, style: externalStyle }); @@ -61,10 +71,10 @@ export default function TextRenderer(config) { /** * Get the new bounds of text annotation. * - * @param {Bounds} bounds - * @param {string} text + * @param {Rect} bounds + * @param {string} text * - * @return {Bounds} + * @return {Rect} */ this.getTextAnnotationBounds = function(bounds, text) { @@ -87,7 +97,7 @@ export default function TextRenderer(config) { * Create a layouted text element. * * @param {string} text - * @param {Object} [options] + * @param {TextLayoutConfig} [options] * * @return {SVGElement} rendered text */ diff --git a/lib/draw/TextRenderer.spec.ts b/lib/draw/TextRenderer.spec.ts new file mode 100644 index 0000000000..289855dbba --- /dev/null +++ b/lib/draw/TextRenderer.spec.ts @@ -0,0 +1,27 @@ +import TextRenderer from './TextRenderer'; + +// instantiate + +new TextRenderer({ + defaultStyle: { + fontFamily: 'foo' + } +}); + + +// api + +const textRenderer = new TextRenderer(); + +textRenderer.createText('FOO\nBar', { + align: 'center-top' +}); + +const defaultStyle = textRenderer.getDefaultStyle(); + +const externalStyle = textRenderer.getExternalStyle(); + +const { width, height } = textRenderer.getExternalLabelBounds({ + width: 100, + height: 20 +}, 'FOO\nBAR\n\WOOP'); From 22eb477be666a337e0f0b16ad6fb001668445059 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 13:49:13 +0100 Subject: [PATCH 314/989] feat(model): add base model types --- lib/model/index.d.ts | 5 +++++ lib/util/ModelUtil.js | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 lib/model/index.d.ts diff --git a/lib/model/index.d.ts b/lib/model/index.d.ts new file mode 100644 index 0000000000..d2a593e6da --- /dev/null +++ b/lib/model/index.d.ts @@ -0,0 +1,5 @@ +import { ElementLike } from "diagram-js/lib/core"; + +export type ModdleElement = Object; + +export type DiagramElement = ElementLike; \ No newline at end of file diff --git a/lib/util/ModelUtil.js b/lib/util/ModelUtil.js index 3a75fc400f..9b62f14101 100644 --- a/lib/util/ModelUtil.js +++ b/lib/util/ModelUtil.js @@ -3,10 +3,14 @@ import { } from 'min-dash'; +/** + * @typedef { import('../model').DiagramElement } DiagramElement + */ + /** * Is an element of the given BPMN type? * - * @param {djs.model.Base|ModdleElement} element + * @param {DiagramElement|ModdleElement} element * @param {string} type * * @return {boolean} @@ -21,7 +25,7 @@ export function is(element, type) { /** * Return true if element has any of the given types. * - * @param {djs.model.Base} element + * @param {DiagramElement} element * @param {Array} types * * @return {boolean} @@ -35,7 +39,7 @@ export function isAny(element, types) { /** * Return the business object for a given element. * - * @param {djs.model.Base|ModdleElement} element + * @param {DiagramElement|ModdleElement} element * * @return {ModdleElement} */ @@ -46,7 +50,7 @@ export function getBusinessObject(element) { /** * Return the di object for a given element. * - * @param {djs.model.Base} element + * @param {DiagramElement} element * * @return {ModdleElement} */ From 31b5af5aa1db66c849b76b2c5042be78c2baaeb0 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 13:54:11 +0100 Subject: [PATCH 315/989] style: improve test formatting --- test/spec/draw/BpmnRenderUtilSpec.js | 33 ++++++++-------------------- 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/test/spec/draw/BpmnRenderUtilSpec.js b/test/spec/draw/BpmnRenderUtilSpec.js index 7a9b67da4c..30d895f23e 100644 --- a/test/spec/draw/BpmnRenderUtilSpec.js +++ b/test/spec/draw/BpmnRenderUtilSpec.js @@ -17,77 +17,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'); - }); + }); From 7999cc15f2f0463ed0f6ee90219d05fc8f915dfe Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 14:03:26 +0100 Subject: [PATCH 316/989] feat(model): add shape / connection like --- lib/model/index.d.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/model/index.d.ts b/lib/model/index.d.ts index d2a593e6da..201ebcebfc 100644 --- a/lib/model/index.d.ts +++ b/lib/model/index.d.ts @@ -1,5 +1,8 @@ -import { ElementLike } from "diagram-js/lib/core"; +import { ElementLike, ShapeLike, ConnectionLike } from "diagram-js/lib/core"; export type ModdleElement = Object; -export type DiagramElement = ElementLike; \ No newline at end of file +export type DiagramElement = ElementLike; + +export type ShapeLike = ShapeLike; +export type ConnectionLike = ConnectionLike; \ No newline at end of file From 1a9a1ab8bcdd3d087a48f4c4a706d4e6f844e06c Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 14:06:13 +0100 Subject: [PATCH 317/989] chore(draw): re-use `ModelUtil#getSemantic` --- lib/draw/BpmnRenderUtil.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/draw/BpmnRenderUtil.js b/lib/draw/BpmnRenderUtil.js index bd20ad45fd..ca164e7627 100644 --- a/lib/draw/BpmnRenderUtil.js +++ b/lib/draw/BpmnRenderUtil.js @@ -4,15 +4,17 @@ import { } from 'min-dash'; import { - getDi + getDi, + getBusinessObject as getSemantic } from '../util/ModelUtil'; import { componentsToPath } from 'diagram-js/lib/util/RenderUtil'; + // re-export getDi for compatibility -export { getDi }; +export { getDi, getSemantic }; export var black = 'hsl(225, 10%, 15%)'; @@ -50,10 +52,6 @@ export function isCollection(element) { return element.isCollection || (dataObject && dataObject.isCollection); } -export function getSemantic(element) { - return element.businessObject; -} - // color access ////////////////////// From 6d3cb74f3f52f576d2a85d2d6da6f4e93a96c540 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 14:06:59 +0100 Subject: [PATCH 318/989] chore(draw): remove unused code + untested, not used -> removed --- lib/draw/BpmnRenderUtil.js | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/lib/draw/BpmnRenderUtil.js b/lib/draw/BpmnRenderUtil.js index ca164e7627..8b20b02e49 100644 --- a/lib/draw/BpmnRenderUtil.js +++ b/lib/draw/BpmnRenderUtil.js @@ -1,5 +1,4 @@ import { - every, some } from 'min-dash'; @@ -25,20 +24,9 @@ export var black = 'hsl(225, 10%, 15%)'; * * @return {boolean} true if element is of the given semantic type */ -export function isTypedEvent(event, eventDefinitionType, filter) { - - function matches(definition, filter) { - return every(filter, function(val, key) { - - // we want a == conversion here, to be able to catch - // undefined == false and friends - /* jshint -W116 */ - return definition[key] == val; - }); - } - +export function isTypedEvent(event, eventDefinitionType) { return some(event.eventDefinitions, function(definition) { - return definition.$type === eventDefinitionType && matches(event, filter); + return definition.$type === eventDefinitionType; }); } From 32321e9fa06bca7d70a713d3f90025d79a53d286 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 14:07:16 +0100 Subject: [PATCH 319/989] feat(draw): type `BpmnRenderUtil` --- lib/draw/BpmnRenderUtil.js | 64 +++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/lib/draw/BpmnRenderUtil.js b/lib/draw/BpmnRenderUtil.js index 8b20b02e49..631c5a9608 100644 --- a/lib/draw/BpmnRenderUtil.js +++ b/lib/draw/BpmnRenderUtil.js @@ -11,6 +11,12 @@ import { componentsToPath } from 'diagram-js/lib/util/RenderUtil'; +/** + * @typedef {import('../model').ModdleElement} ModdleElement + * @typedef {import('../model').DiagramElement} DiagramElement + * + * @typedef {import('../model').ShapeLike} ShapeLike + */ // re-export getDi for compatibility export { getDi, getSemantic }; @@ -22,7 +28,10 @@ export var black = 'hsl(225, 10%, 15%)'; /** * Checks if eventDefinition of the given element matches with semantic type. * - * @return {boolean} true if element is of the given semantic type + * @param {ModdleElement} event + * @param {string} eventDefinitionType + * + * @return {boolean} */ export function isTypedEvent(event, eventDefinitionType) { return some(event.eventDefinitions, function(definition) { @@ -30,10 +39,24 @@ export function isTypedEvent(event, eventDefinitionType) { }); } +/** + * Check if element is a throw event. + * + * @param {ModdleElement} event + * + * @return {boolean} + */ export function isThrowEvent(event) { return (event.$type === 'bpmn:IntermediateThrowEvent') || (event.$type === 'bpmn:EndEvent'); } +/** + * Check if element is a throw event. + * + * @param {ModdleElement} event + * + * @return {boolean} + */ export function isCollection(element) { var dataObject = element.dataObjectRef; @@ -43,18 +66,37 @@ export function isCollection(element) { // color access ////////////////////// +/** + * @param {DiagramElement} element + * @param {string} defaultColor + * + * @return {string} + */ export function getFillColor(element, defaultColor) { var di = getDi(element); return di.get('color:background-color') || di.get('bioc:fill') || defaultColor || 'white'; } +/** + * @param {DiagramElement} element + * @param {string} defaultColor + * + * @return {string} + */ export function getStrokeColor(element, defaultColor) { var di = getDi(element); return di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || black; } +/** + * @param {DiagramElement} element + * @param {string} defaultColor + * @param {string} defaultStrokeColor + * + * @return {string} + */ export function getLabelColor(element, defaultColor, defaultStrokeColor) { var di = getDi(element), label = di.get('label'); @@ -65,6 +107,11 @@ export function getLabelColor(element, defaultColor, defaultStrokeColor) { // cropping path customizations ////////////////////// +/** + * @param {ShapeLike} shape + * + * @return {string} path + */ export function getCirclePath(shape) { var cx = shape.x + shape.width / 2, @@ -82,6 +129,11 @@ export function getCirclePath(shape) { return componentsToPath(circlePath); } +/** + * @param {ShapeLike} shape + * + * @return {string} path + */ export function getRoundRectPath(shape, borderRadius) { var x = shape.x, @@ -105,6 +157,11 @@ export function getRoundRectPath(shape, borderRadius) { return componentsToPath(roundRectPath); } +/** + * @param {ShapeLike} shape + * + * @return {string} path + */ export function getDiamondPath(shape) { var width = shape.width, @@ -125,6 +182,11 @@ export function getDiamondPath(shape) { return componentsToPath(diamondPath); } +/** + * @param {ShapeLike} shape + * + * @return {string} path + */ export function getRectPath(shape) { var x = shape.x, y = shape.y, From 5c1930f4cde430277795dd609383c0ca70927802 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 14:26:18 +0100 Subject: [PATCH 320/989] feat(util): type `ModelUtil` --- lib/util/ModelUtil.d.ts | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 lib/util/ModelUtil.d.ts diff --git a/lib/util/ModelUtil.d.ts b/lib/util/ModelUtil.d.ts new file mode 100644 index 0000000000..195c6e93e8 --- /dev/null +++ b/lib/util/ModelUtil.d.ts @@ -0,0 +1,43 @@ +import { + ModdleElement, + DiagramElement +} from '../model'; + + +/** + * Is an element of the given BPMN type? + * + * @param {DiagramElement|ModdleElement} element + * @param {string} type + * + * @return {boolean} + */ +export function is(element: DiagramElement | ModdleElement, type: string): boolean; + +/** + * Return true if element has any of the given types. + * + * @param {DiagramElement} element + * @param {Array} types + * + * @return {boolean} + */ +export function isAny(element: DiagramElement, types: Array): boolean; + +/** + * Return the business object for a given element. + * + * @param {DiagramElement|ModdleElement} element + * + * @return {ModdleElement} + */ +export function getBusinessObject(element: DiagramElement | ModdleElement): ModdleElement; + +/** + * Return the di object for a given element. + * + * @param {DiagramElement} element + * + * @return {ModdleElement} + */ +export function getDi(element: DiagramElement): ModdleElement; From 8e88978af04d92467647b0c02b138e281b10e8f7 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 15:56:38 +0100 Subject: [PATCH 321/989] chore(util): improve `DiUtil#hasEventDefinition` --- lib/util/DiUtil.js | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/lib/util/DiUtil.js b/lib/util/DiUtil.js index b35db88331..1c93eaae78 100644 --- a/lib/util/DiUtil.js +++ b/lib/util/DiUtil.js @@ -5,7 +5,7 @@ import { } from './ModelUtil'; import { - forEach + some } from 'min-dash'; @@ -41,18 +41,11 @@ export function isEventSubProcess(element) { } export function hasEventDefinition(element, eventType) { - var bo = getBusinessObject(element), - hasEventDefinition = false; - - if (bo.eventDefinitions) { - forEach(bo.eventDefinitions, function(event) { - if (is(event, eventType)) { - hasEventDefinition = true; - } - }); - } + var eventDefinitions = getBusinessObject(element).eventDefinitions; - return hasEventDefinition; + return some(eventDefinitions, function(event) { + return is(event, eventType); + }); } export function hasErrorEventDefinition(element) { From 4a8c98307c4a183b30dcae75101fe6c076a078fa Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 16:13:08 +0100 Subject: [PATCH 322/989] feat(draw): type render util --- lib/draw/BpmnRenderUtil.d.ts | 87 ++++++++++++++++++++++++++++++++++++ lib/draw/BpmnRenderUtil.js | 12 +++-- 2 files changed, 95 insertions(+), 4 deletions(-) create mode 100644 lib/draw/BpmnRenderUtil.d.ts diff --git a/lib/draw/BpmnRenderUtil.d.ts b/lib/draw/BpmnRenderUtil.d.ts new file mode 100644 index 0000000000..daf21da08f --- /dev/null +++ b/lib/draw/BpmnRenderUtil.d.ts @@ -0,0 +1,87 @@ +import { ModdleElement, DiagramElement } from '../model'; + +/** + * Checks if eventDefinition of the given element matches with semantic type. + * + * @param {ModdleElement} event + * @param {string} eventDefinitionType + * + * @return {boolean} + */ +export function isTypedEvent(event: ModdleElement, eventDefinitionType: string): boolean; + +/** + * Check if element is a throw event. + * + * @param {ModdleElement} event + * + * @return {boolean} + */ +export function isThrowEvent(event: ModdleElement): boolean; + +/** + * Check if element is a throw event. + * + * @param {ModdleElement} event + * + * @return {boolean} + */ +export function isCollection(element: any): boolean; + +/** + * @param {DiagramElement} element + * @param {string} defaultColor + * + * @return {string} + */ +export function getFillColor(element: DiagramElement, defaultColor: string): string; + +/** + * @param {DiagramElement} element + * @param {string} defaultColor + * + * @return {string} + */ +export function getStrokeColor(element: DiagramElement, defaultColor: string): string; + +/** + * @param {DiagramElement} element + * @param {string} defaultColor + * @param {string} defaultStrokeColor + * + * @return {string} + */ +export function getLabelColor(element: DiagramElement, defaultColor: string, defaultStrokeColor: string): string; + +/** + * @param {ShapeLike} shape + * + * @return {string} path + */ +export function getCirclePath(shape: ShapeLike): string; + +/** + * @param {ShapeLike} shape + * + * @return {string} path + */ +export function getRoundRectPath(shape: ShapeLike, borderRadius: any): string; + +/** + * @param {ShapeLike} shape + * + * @return {string} path + */ +export function getDiamondPath(shape: ShapeLike): string; + +/** + * @param {ShapeLike} shape + * + * @return {string} path + */ +export function getRectPath(shape: ShapeLike): string; + +export const black: string; + +export { getDi } from "../util/ModelUtil"; +export { getBusinessObject as getSemantic } from "../util/ModelUtil"; diff --git a/lib/draw/BpmnRenderUtil.js b/lib/draw/BpmnRenderUtil.js index 631c5a9608..c3e2cc3680 100644 --- a/lib/draw/BpmnRenderUtil.js +++ b/lib/draw/BpmnRenderUtil.js @@ -3,14 +3,14 @@ import { } from 'min-dash'; import { - getDi, - getBusinessObject as getSemantic + getDi } from '../util/ModelUtil'; import { componentsToPath } from 'diagram-js/lib/util/RenderUtil'; + /** * @typedef {import('../model').ModdleElement} ModdleElement * @typedef {import('../model').DiagramElement} DiagramElement @@ -18,8 +18,12 @@ import { * @typedef {import('../model').ShapeLike} ShapeLike */ -// re-export getDi for compatibility -export { getDi, getSemantic }; +// re-export for compatibility +export { + getDi, + getBusinessObject as getSemantic +} from '../util/ModelUtil'; + export var black = 'hsl(225, 10%, 15%)'; From f34ecdd214689c10d19bbaabd236c3a2403deb99 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 16:14:12 +0100 Subject: [PATCH 323/989] feat(draw): type `BpmnRenderer` --- lib/draw/BpmnRenderer.d.ts | 37 +++++++++++++++++++++++++++ lib/draw/BpmnRenderer.js | 51 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 lib/draw/BpmnRenderer.d.ts diff --git a/lib/draw/BpmnRenderer.d.ts b/lib/draw/BpmnRenderer.d.ts new file mode 100644 index 0000000000..b4f45c93fe --- /dev/null +++ b/lib/draw/BpmnRenderer.d.ts @@ -0,0 +1,37 @@ +import Canvas from 'diagram-js/lib/core/Canvas'; +import EventBus from 'diagram-js/lib/core/EventBus'; +import BaseRenderer from 'diagram-js/lib/draw/BaseRenderer'; +import Styles from 'diagram-js/lib/draw/Styles'; +import PathMap from './PathMap'; +import TextRenderer from './TextRenderer'; + +/** + * A renderer for BPMN elements + */ +export default class BpmnRenderer extends BaseRenderer { + + /** + * @param config + * @param eventBus + * @param styles + * @param pathMap + * @param canvas + * @param textRenderer + * @param priority + */ + constructor( + config: BpmnRendererConfig, + eventBus: EventBus, + styles: Styles, + pathMap: PathMap, + canvas: Canvas, + textRenderer: TextRenderer, + priority?: number + ); +} + +export type BpmnRendererConfig = Partial<{ + defaultFillColor: string; + defaultStrokeColor: string; + defaultLabelColor: string; +}>; diff --git a/lib/draw/BpmnRenderer.js b/lib/draw/BpmnRenderer.js index f0988e1e20..b4e1d16d12 100644 --- a/lib/draw/BpmnRenderer.js +++ b/lib/draw/BpmnRenderer.js @@ -69,6 +69,29 @@ var DEFAULT_FILL_OPACITY = .95, var ELEMENT_LABEL_DISTANCE = 10; +/** + * @typedef { Partial<{ + * defaultFillColor: string, + * defaultStrokeColor: string, + * defaultLabelColor: string + * }> } BpmnRendererConfig + */ + +/** + * @typedef { import('../model').DiagramElement } DiagramElement + */ + +/** + * A renderer for BPMN elements + * + * @param {BpmnRendererConfig} config + * @param {import('diagram-js/lib/core/EventBus').default} eventBus + * @param {import('diagram-js/lib/draw/Styles').default} styles + * @param {import('./PathMap').default} pathMap + * @param {import('diagram-js/lib/core/Canvas').default} canvas + * @param {import('./TextRenderer').default} textRenderer + * @param {number} [priority] + */ export default function BpmnRenderer( config, eventBus, styles, pathMap, canvas, textRenderer, priority) { @@ -1895,10 +1918,23 @@ BpmnRenderer.$inject = [ ]; +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ BpmnRenderer.prototype.canRender = function(element) { return is(element, 'bpmn:BaseElement'); }; +/** + * Draw shape into parentGfx. + * + * @param {SVGElement} parentGfx + * @param {DiagramElement} element + * + * @return {SVGElement} mainGfx + */ BpmnRenderer.prototype.drawShape = function(parentGfx, element) { var type = element.type; var h = this._renderer(type); @@ -1907,6 +1943,14 @@ BpmnRenderer.prototype.drawShape = function(parentGfx, element) { return h(parentGfx, element); }; +/** + * Draw connection into parentGfx. + * + * @param {SVGElement} parentGfx + * @param {DiagramElement} element + * + * @return {SVGElement} mainGfx + */ BpmnRenderer.prototype.drawConnection = function(parentGfx, element) { var type = element.type; var h = this._renderer(type); @@ -1915,6 +1959,13 @@ BpmnRenderer.prototype.drawConnection = function(parentGfx, element) { return h(parentGfx, element); }; +/** + * Get shape path. + * + * @param {DiagramElement} element + * + * @return {string} path + */ BpmnRenderer.prototype.getShapePath = function(element) { if (is(element, 'bpmn:Event')) { From acd9a7686d871a8e8f1ac1d432658cd701385894 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 16:15:52 +0100 Subject: [PATCH 324/989] chore(util): type `DiUtil` --- lib/util/DiUtil.d.ts | 52 ++++++++++++++++++++++++++++++++++++++++++++ lib/util/DiUtil.js | 43 +++++++++++++++++++++++++++++++++++- 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 lib/util/DiUtil.d.ts diff --git a/lib/util/DiUtil.d.ts b/lib/util/DiUtil.d.ts new file mode 100644 index 0000000000..92b2cfd027 --- /dev/null +++ b/lib/util/DiUtil.d.ts @@ -0,0 +1,52 @@ +import { DiagramElement, ModdleElement } from '../model'; + +/** + * @param {DiagramElement} element + * @param {ModdleElement} di + * + * @return {boolean} + */ +export function isExpanded(element: DiagramElement, di: ModdleElement): boolean; + +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ +export function isInterrupting(element: DiagramElement): boolean; + +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ +export function isEventSubProcess(element: DiagramElement): boolean; + +/** + * @param {DiagramElement} element + * @param {string} eventType + * + * @return {boolean} + */ +export function hasEventDefinition(element: DiagramElement, eventType: string): boolean; + +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ +export function hasErrorEventDefinition(element: DiagramElement): boolean; + +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ +export function hasEscalationEventDefinition(element: DiagramElement): boolean; + +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ +export function hasCompensateEventDefinition(element: DiagramElement): boolean; diff --git a/lib/util/DiUtil.js b/lib/util/DiUtil.js index 1c93eaae78..be528f085c 100644 --- a/lib/util/DiUtil.js +++ b/lib/util/DiUtil.js @@ -8,7 +8,17 @@ import { some } from 'min-dash'; - +/** + * @typedef {import('../model').DiagramElement} DiagramElement + * @typedef {import('../model').ModdleElement} ModdleElement + */ + +/** + * @param {DiagramElement} element + * @param {ModdleElement} di + * + * @return {boolean} + */ export function isExpanded(element, di) { if (is(element, 'bpmn:CallActivity')) { @@ -32,14 +42,30 @@ export function isExpanded(element, di) { return true; } +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ export function isInterrupting(element) { return element && getBusinessObject(element).isInterrupting !== false; } +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ export function isEventSubProcess(element) { return element && !!getBusinessObject(element).triggeredByEvent; } +/** + * @param {DiagramElement} element + * @param {string} eventType + * + * @return {boolean} + */ export function hasEventDefinition(element, eventType) { var eventDefinitions = getBusinessObject(element).eventDefinitions; @@ -48,14 +74,29 @@ export function hasEventDefinition(element, eventType) { }); } +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ export function hasErrorEventDefinition(element) { return hasEventDefinition(element, 'bpmn:ErrorEventDefinition'); } +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ export function hasEscalationEventDefinition(element) { return hasEventDefinition(element, 'bpmn:EscalationEventDefinition'); } +/** + * @param {DiagramElement} element + * + * @return {boolean} + */ export function hasCompensateEventDefinition(element) { return hasEventDefinition(element, 'bpmn:CompensateEventDefinition'); } From 633c93d5fe326e7f7fb12cb82383b842711ee204 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 16:20:17 +0100 Subject: [PATCH 325/989] feat(label-editing): type `LabelUtil` --- lib/features/label-editing/LabelUtil.d.ts | 16 ++++++++++++++++ lib/features/label-editing/LabelUtil.js | 17 ++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 lib/features/label-editing/LabelUtil.d.ts diff --git a/lib/features/label-editing/LabelUtil.d.ts b/lib/features/label-editing/LabelUtil.d.ts new file mode 100644 index 0000000000..ca67ec9245 --- /dev/null +++ b/lib/features/label-editing/LabelUtil.d.ts @@ -0,0 +1,16 @@ +import { DiagramElement } from '../../model'; + +/** + * @param {DiagramElement} element + * + * @return {string} label + */ +export function getLabel(element: DiagramElement): string; + +/** + * @param {DiagramElement} element + * @param {string} text + * + * @return {DiagramElement} element + */ +export function setLabel(element: DiagramElement, text: string): DiagramElement; diff --git a/lib/features/label-editing/LabelUtil.js b/lib/features/label-editing/LabelUtil.js index 25f75bd599..3560f81f98 100644 --- a/lib/features/label-editing/LabelUtil.js +++ b/lib/features/label-editing/LabelUtil.js @@ -1,5 +1,9 @@ import { is } from '../../util/ModelUtil'; +/** + * @typedef { import('../../model').DiagramElement } DiagramElement + */ + function getLabelAttr(semantic) { if ( is(semantic, 'bpmn:FlowElement') || @@ -33,6 +37,11 @@ function getCategoryValue(semantic) { return categoryValueRef.value || ''; } +/** + * @param {DiagramElement} element + * + * @return {string} label + */ export function getLabel(element) { var semantic = element.businessObject, attr = getLabelAttr(semantic); @@ -49,7 +58,13 @@ export function getLabel(element) { } -export function setLabel(element, text, isExternal) { +/** + * @param {DiagramElement} element + * @param {string} text + * + * @return {DiagramElement} element + */ +export function setLabel(element, text) { var semantic = element.businessObject, attr = getLabelAttr(semantic); From 92feb76662b4d640541d7197530f7a1bc2562aeb Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Thu, 9 Mar 2023 16:23:34 +0100 Subject: [PATCH 326/989] feat(draw): type `PathMap` --- lib/draw/PathMap.d.ts | 66 +++++++++++++++++++++++++++++++++++++++++++ lib/draw/PathMap.js | 11 ++++++-- 2 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 lib/draw/PathMap.d.ts diff --git a/lib/draw/PathMap.d.ts b/lib/draw/PathMap.d.ts new file mode 100644 index 0000000000..5bbbf397dd --- /dev/null +++ b/lib/draw/PathMap.d.ts @@ -0,0 +1,66 @@ +/** + * Map containing SVG paths needed by BpmnRenderer + */ +export default class PathMap { + + /** + * Return raw path for the given ID. + * + * @param pathId + * + * @return raw path + */ + getRawPath(pathId: string): string; + + /** + * Scales the path to the given height and width. + *

Use case

+ *

Use case is to scale the content of elements (event, gateways) based + * on the element bounding box's size. + *

+ *

Why not transform

+ *

Scaling a path with transform() will also scale the stroke and IE does not support + * the option 'non-scaling-stroke' to prevent this. + * Also there are use cases where only some parts of a path should be + * scaled.

+ * + * @param pathId The ID of the path. + * @param param

+ * Example param object scales the path to 60% size of the container (data.width, data.height). + *

+   *   {
+   *   xScaleFactor: 0.6,
+   *   yScaleFactor:0.6,
+   *   containerWidth: data.width,
+   *   containerHeight: data.height,
+   *   position: {
+   *     mx: 0.46,
+   *     my: 0.2,
+   *   }
+   *   }
+   *   
+ *
    + *
  • targetpathwidth = xScaleFactor * containerWidth
  • + *
  • targetpathheight = yScaleFactor * containerHeight
  • + *
  • Position is used to set the starting coordinate of the path. M is computed: + *
      + *
    • position.x * containerWidth
    • + *
    • position.y * containerHeight
    • + *
    + * Center of the container
     position: {
    +   *     mx: 0.5,
    +   *     my: 0.5,
    +   *   }
    + * Upper left corner of the container + *
     position: {
    +   *     mx: 0.0,
    +   *     my: 0.0,
    +   *   }
    + *
  • + *
+ *

+ * + * @return scaled path + */ + getScaledPath(pathId: string, param: any): string; +} diff --git a/lib/draw/PathMap.js b/lib/draw/PathMap.js index 343cbc15e9..0ceb72ab12 100644 --- a/lib/draw/PathMap.js +++ b/lib/draw/PathMap.js @@ -1,7 +1,6 @@ /** - * Map containing SVG paths needed by BpmnRenderer. + * Map containing SVG paths needed by BpmnRenderer */ - export default function PathMap() { /** @@ -343,6 +342,13 @@ export default function PathMap() { } }; + /** + * Return raw path for the given ID. + * + * @param {string} pathId + * + * @return {string} raw path + */ this.getRawPath = function getRawPath(pathId) { return this.pathMap[pathId].d; }; @@ -395,6 +401,7 @@ export default function PathMap() { * *

* + * @return {string} scaled path */ this.getScaledPath = function getScaledPath(pathId, param) { var rawPath = this.pathMap[pathId]; From 58eef293d6de5d2a50786d50dbecfcbe8e51a91c Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 08:23:25 +0200 Subject: [PATCH 327/989] chore: generate types before test --- package-lock.json | 1250 ++++++++++++++++++++++++++++++++++++--------- package.json | 4 +- 2 files changed, 1013 insertions(+), 241 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a06daf63f..385e6385b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,7 @@ "cpx": "^1.5.0", "cross-env": "^7.0.3", "del": "^6.0.0", + "del-cli": "^5.0.0", "eslint": "^8.22.0", "eslint-plugin-bpmn-io": "^1.0.0", "eslint-plugin-import": "^2.26.0", @@ -1271,6 +1272,12 @@ "@types/unist": "*" } }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, "node_modules/@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", @@ -1292,6 +1299,12 @@ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", "dev": true }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, "node_modules/@types/pluralize": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.29.tgz", @@ -2134,6 +2147,15 @@ "node": ">= 0.4" } }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -2617,9 +2639,39 @@ } }, "node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "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/camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "dev": true, + "dependencies": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, "engines": { "node": ">=10" @@ -3180,6 +3232,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/decode-named-character-reference": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", @@ -3341,11 +3427,193 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del/node_modules/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 + "node_modules/del-cli": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-5.0.0.tgz", + "integrity": "sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ==", + "dev": true, + "dependencies": { + "del": "^7.0.0", + "meow": "^10.1.3" + }, + "bin": { + "del": "cli.js", + "del-cli": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del-cli/node_modules/aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del-cli/node_modules/clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del-cli/node_modules/del": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", + "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", + "dev": true, + "dependencies": { + "globby": "^13.1.2", + "graceful-fs": "^4.2.10", + "is-glob": "^4.0.3", + "is-path-cwd": "^3.0.0", + "is-path-inside": "^4.0.0", + "p-map": "^5.5.0", + "rimraf": "^3.0.2", + "slash": "^4.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del-cli/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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del-cli/node_modules/globby": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", + "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del-cli/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del-cli/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/del-cli/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/del-cli/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/del-cli/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/del-cli/node_modules/p-map": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", + "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", + "dev": true, + "dependencies": { + "aggregate-error": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del-cli/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/del/node_modules/is-extglob": { "version": "2.1.1", @@ -3627,12 +3895,6 @@ "node": ">=10.13.0" } }, - "node_modules/enhanced-resolve/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, "node_modules/ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", @@ -4108,18 +4370,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -4219,46 +4469,6 @@ "node": ">=4.0" } }, - "node_modules/eslint/node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/eslint/node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/eslint/node_modules/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, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -4336,28 +4546,6 @@ "node": ">=0.10.0" } }, - "node_modules/eslint/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/eslint/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/eslint/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4418,18 +4606,6 @@ "node": ">=8" } }, - "node_modules/eslint/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/eslint/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4776,20 +4952,19 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-glob/node_modules/braces": { @@ -6222,9 +6397,9 @@ } }, "node_modules/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==", + "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/grapheme-splitter": { @@ -6238,7 +6413,16 @@ "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==", "engines": { - "node": ">=0.8.0" + "node": ">=0.8.0" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" } }, "node_modules/has": { @@ -7576,12 +7760,6 @@ "node": ">= 6" } }, - "node_modules/karma/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, "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", @@ -7990,6 +8168,18 @@ "node": ">=0.10.0" } }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -8346,6 +8536,98 @@ "node": ">= 0.10.0" } }, + "node_modules/meow": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "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", @@ -9030,6 +9312,15 @@ "min-dash": "^4.0.0" } }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -9051,6 +9342,38 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minimist-options/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -11086,6 +11409,18 @@ } ] }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/quotation": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/quotation/-/quotation-2.0.2.tgz", @@ -11195,6 +11530,107 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -11562,6 +11998,34 @@ "node": ">=0.10.0" } }, + "node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/redent/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", @@ -14036,12 +14500,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/streamroller/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, "node_modules/streamroller/node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -14527,6 +14985,21 @@ "node": ">=6" } }, + "node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "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", @@ -14951,6 +15424,18 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, + "node_modules/trim-newlines": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/trough": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", @@ -16232,12 +16717,6 @@ "ajv": "^6.9.1" } }, - "node_modules/webpack/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -17443,6 +17922,12 @@ "@types/unist": "*" } }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, "@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", @@ -17464,6 +17949,12 @@ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", "dev": true }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, "@types/pluralize": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.29.tgz", @@ -18117,6 +18608,12 @@ } } }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true + }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -18470,11 +18967,31 @@ "dev": true }, "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, + "camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "dev": true, + "requires": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, "camunda-bpmn-moddle": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/camunda-bpmn-moddle/-/camunda-bpmn-moddle-4.0.1.tgz", @@ -18916,6 +19433,30 @@ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, + "decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "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", @@ -19036,12 +19577,6 @@ "slash": "^3.0.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 - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -19059,6 +19594,120 @@ } } }, + "del-cli": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-5.0.0.tgz", + "integrity": "sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ==", + "dev": true, + "requires": { + "del": "^7.0.0", + "meow": "^10.1.3" + }, + "dependencies": { + "aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "requires": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + } + }, + "clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dev": true, + "requires": { + "escape-string-regexp": "5.0.0" + } + }, + "del": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", + "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", + "dev": true, + "requires": { + "globby": "^13.1.2", + "graceful-fs": "^4.2.10", + "is-glob": "^4.0.3", + "is-path-cwd": "^3.0.0", + "is-path-inside": "^4.0.0", + "p-map": "^5.5.0", + "rimraf": "^3.0.2", + "slash": "^4.0.0" + } + }, + "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 + }, + "globby": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", + "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "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-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-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 + }, + "p-map": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", + "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", + "dev": true, + "requires": { + "aggregate-error": "^4.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } + } + }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -19262,14 +19911,6 @@ "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - } } }, "ent": { @@ -19412,15 +20053,6 @@ "color-convert": "^2.0.1" } }, - "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" - } - }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -19488,39 +20120,6 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "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.4" - }, - "dependencies": { - "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" - } - } - } - }, - "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": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -19574,22 +20173,6 @@ "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.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -19635,15 +20218,6 @@ "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", @@ -20129,17 +20703,16 @@ "dev": true }, "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, "dependencies": { "braces": { @@ -21227,9 +21800,9 @@ } }, "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==", + "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 }, "grapheme-splitter": { @@ -21243,6 +21816,12 @@ "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==" }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -22140,12 +22719,6 @@ "is-glob": "^4.0.1" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -22543,6 +23116,12 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -22808,6 +23387,70 @@ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "dev": true }, + "meow": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "dependencies": { + "decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -23227,6 +23870,12 @@ "min-dash": "^4.0.0" } }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -23242,6 +23891,31 @@ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "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 + } + } + }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -24730,6 +25404,12 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true + }, "quotation": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/quotation/-/quotation-2.0.2.tgz", @@ -24818,6 +25498,75 @@ } } }, + "read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "requires": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -25120,6 +25869,24 @@ } } }, + "redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "requires": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + } + } + }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", @@ -27060,12 +27827,6 @@ "universalify": "^0.1.0" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -27423,6 +28184,15 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "requires": { + "min-indent": "^1.0.1" + } + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -27729,6 +28499,12 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, + "trim-newlines": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", + "dev": true + }, "trough": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", @@ -28603,12 +29379,6 @@ "dev": true, "requires": {} }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", diff --git a/package.json b/package.json index b19d402480..5643be96bc 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "!lib/**/*.spec.ts" ], "scripts": { - "all": "run-s lint test test:types distro test:distro", + "all": "run-s lint test generate-types test:types distro test:distro", "lint": "eslint .", "format": "run-s format:markdown 'lint -- --fix'", "format:markdown": "remark . -qo", @@ -24,6 +24,7 @@ "test": "karma start test/config/karma.unit.js", "distro": "node tasks/build-distro.js", "collect-translations": "cross-env COLLECT_TRANSLATIONS=1 npm test", + "generate-types": "del-cli \"lib/**/*.d.ts\" && npx bio-dts -r lib", "test:distro": "node tasks/test-distro.js", "test:types": "tsc", "postversion": "run-s distro test:distro", @@ -72,6 +73,7 @@ "cpx": "^1.5.0", "cross-env": "^7.0.3", "del": "^6.0.0", + "del-cli": "^5.0.0", "eslint": "^8.22.0", "eslint-plugin-bpmn-io": "^1.0.0", "eslint-plugin-import": "^2.26.0", From 5e898a9e2abb1d534ed53db967a743d4e1bf60dc Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 11:34:20 +0200 Subject: [PATCH 328/989] chore: wrap methods for compatibility after assigning them --- lib/BaseViewer.js | 30 ++++++++++++++++++++---------- lib/Modeler.js | 6 ++++-- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index 1ffe5517f9..1acdffb4b2 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -117,7 +117,7 @@ inherits(BaseViewer, Diagram); * * @return {Promise} A promise resolving with warnings that were produced during the import. */ -BaseViewer.prototype.importXML = wrapForCompatibility(async function importXML(xml, bpmnDiagram) { +BaseViewer.prototype.importXML = async function importXML(xml, bpmnDiagram) { const self = this; @@ -227,7 +227,9 @@ BaseViewer.prototype.importXML = wrapForCompatibility(async function importXML(x throw error; } -}); +}; + +BaseViewer.prototype.importXML = wrapForCompatibility(BaseViewer.prototype.importXML); /** @@ -252,12 +254,14 @@ BaseViewer.prototype.importXML = wrapForCompatibility(async function importXML(x * * @return {Promise} A promise resolving with warnings that were produced during the import. */ -BaseViewer.prototype.importDefinitions = wrapForCompatibility(async function importDefinitions(definitions, bpmnDiagram) { +BaseViewer.prototype.importDefinitions = async function importDefinitions(definitions, bpmnDiagram) { this._setDefinitions(definitions); const result = await this.open(bpmnDiagram); return { warnings: result.warnings }; -}); +}; + +BaseViewer.prototype.importDefinitions = wrapForCompatibility(BaseViewer.prototype.importDefinitions); /** @@ -281,7 +285,7 @@ BaseViewer.prototype.importDefinitions = wrapForCompatibility(async function imp * * @return {Promise} A promise resolving with warnings that were produced during opening. */ -BaseViewer.prototype.open = wrapForCompatibility(async function open(bpmnDiagramOrId) { +BaseViewer.prototype.open = async function open(bpmnDiagramOrId) { const definitions = this._definitions; let bpmnDiagram = bpmnDiagramOrId; @@ -318,7 +322,9 @@ BaseViewer.prototype.open = wrapForCompatibility(async function open(bpmnDiagram const { warnings } = await importBpmnDiagram(this, definitions, bpmnDiagram); return { warnings }; -}); +}; + +BaseViewer.prototype.open = wrapForCompatibility(BaseViewer.prototype.open); /** * Export the currently displayed BPMN 2.0 diagram as @@ -343,7 +349,7 @@ BaseViewer.prototype.open = wrapForCompatibility(async function open(bpmnDiagram * * @return {Promise} A promise resolving with the XML. */ -BaseViewer.prototype.saveXML = wrapForCompatibility(async function saveXML(options) { +BaseViewer.prototype.saveXML = async function saveXML(options) { options = options || {}; @@ -395,7 +401,9 @@ BaseViewer.prototype.saveXML = wrapForCompatibility(async function saveXML(optio } return result; -}); +}; + +BaseViewer.prototype.saveXML = wrapForCompatibility(BaseViewer.prototype.saveXML); /** @@ -417,7 +425,7 @@ BaseViewer.prototype.saveXML = wrapForCompatibility(async function saveXML(optio * * @return {Promise} A promise resolving with the SVG. */ -BaseViewer.prototype.saveSVG = wrapForCompatibility(async function saveSVG() { +BaseViewer.prototype.saveSVG = async function saveSVG() { this._emit('saveSVG.start'); let svg, err; @@ -464,7 +472,9 @@ BaseViewer.prototype.saveSVG = wrapForCompatibility(async function saveSVG() { } return { svg }; -}); +}; + +BaseViewer.prototype.saveSVG = wrapForCompatibility(BaseViewer.prototype.saveSVG); /** * Get a named diagram service. diff --git a/lib/Modeler.js b/lib/Modeler.js index 432be36d12..2cce9c66c3 100644 --- a/lib/Modeler.js +++ b/lib/Modeler.js @@ -148,9 +148,11 @@ Modeler.NavigatedViewer = NavigatedViewer; * * @return {Promise} A promise resolving with warnings that were produced during the import. */ -Modeler.prototype.createDiagram = wrapForCompatibility(function createDiagram() { +Modeler.prototype.createDiagram = function createDiagram() { return this.importXML(initialDiagram); -}); +}; + +Modeler.prototype.createDiagram = wrapForCompatibility(Modeler.prototype.createDiagram); Modeler.prototype._interactionModules = [ From 3ae58a6c088b907ad11bd30baf03d535dd1b3e1a Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 11:35:52 +0200 Subject: [PATCH 329/989] chore(util): fix `BpmnRenderUtil` param type --- lib/draw/BpmnRenderUtil.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/draw/BpmnRenderUtil.js b/lib/draw/BpmnRenderUtil.js index c3e2cc3680..21d8239c8b 100644 --- a/lib/draw/BpmnRenderUtil.js +++ b/lib/draw/BpmnRenderUtil.js @@ -57,7 +57,7 @@ export function isThrowEvent(event) { /** * Check if element is a throw event. * - * @param {ModdleElement} event + * @param {ModdleElement} element * * @return {boolean} */ From f34e3c79e1e5f99ed1c2bb9bda03b035071f73e8 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 11:50:26 +0200 Subject: [PATCH 330/989] fix(copy-paste): fix `ModdleCopy` JSDoc --- lib/features/copy-paste/ModdleCopy.js | 31 ++++++++++++++------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/lib/features/copy-paste/ModdleCopy.js b/lib/features/copy-paste/ModdleCopy.js index e310498576..1e6a22537a 100644 --- a/lib/features/copy-paste/ModdleCopy.js +++ b/lib/features/copy-paste/ModdleCopy.js @@ -1,12 +1,13 @@ import { find, forEach, + has, isArray, isDefined, + isFunction, isObject, matchPattern, reduce, - has, sortBy } from 'min-dash'; @@ -23,7 +24,7 @@ var DISALLOWED_PROPERTIES = [ ]; /** - * @typedef {Function} listener + * @typedef {Function} ModdleCopyCanCopyPropertiesListener * * @param {Object} context * @param {Array} context.propertyNames @@ -35,11 +36,11 @@ var DISALLOWED_PROPERTIES = [ */ /** - * @typedef {Function} listener + * @typedef {Function} ModdleCopyCanCopyPropertyListener * * @param {Object} context * @param {ModdleElement} context.parent - * @param {*} context.property + * @param {any} context.property * @param {string} context.propertyName * * @returns {*|boolean} - Return copied property or false to disallow @@ -47,11 +48,11 @@ var DISALLOWED_PROPERTIES = [ */ /** - * @typedef {Function} listener + * @typedef {Function} ModdleCopyCanSetCopiedPropertyListener * * @param {Object} context * @param {ModdleElement} context.parent - * @param {*} context.property + * @param {any} context.property * @param {string} context.propertyName * * @returns {boolean} - Return false to disallow @@ -128,11 +129,11 @@ ModdleCopy.$inject = [ * @param {ModdleElement} sourceElement * @param {ModdleElement} targetElement * @param {Array} [propertyNames] - * @param {boolean} clone + * @param {boolean} [clone=false] * - * @param {ModdleElement} + * @return {ModdleElement} */ -ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, propertyNames, clone) { +ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, propertyNames, clone = false) { var self = this; if (propertyNames && !isArray(propertyNames)) { @@ -191,14 +192,14 @@ ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, proper /** * Copy model property. * - * @param {*} property + * @param {any} property * @param {ModdleElement} parent * @param {string} propertyName - * @param {boolean} clone + * @param {boolean} [clone=false] * - * @returns {*} + * @returns {any} */ -ModdleCopy.prototype.copyProperty = function(property, parent, propertyName, clone) { +ModdleCopy.prototype.copyProperty = function(property, parent, propertyName, clone = false) { var self = this; // allow others to copy property @@ -270,7 +271,7 @@ ModdleCopy.prototype.copyProperty = function(property, parent, propertyName, clo return property; }; -ModdleCopy.prototype._copyId = function(id, element, clone) { +ModdleCopy.prototype._copyId = function(id, element, clone = false) { if (clone) { return id; @@ -300,5 +301,5 @@ export function getPropertyNames(descriptor, keepDefaultProperties) { } function is(element, type) { - return element && (typeof element.$instanceOf === 'function') && element.$instanceOf(type); + return element && isFunction(element.$instanceOf) && element.$instanceOf(type); } \ No newline at end of file From 40946a1ed884bdfec30b7d16a80529fa5221cb9f Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 11:52:16 +0200 Subject: [PATCH 331/989] fix(modeling): fix `CategoryUtil` JSDoc --- lib/features/modeling/behavior/util/CategoryUtil.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/features/modeling/behavior/util/CategoryUtil.js b/lib/features/modeling/behavior/util/CategoryUtil.js index c5abc30606..e316ae691c 100644 --- a/lib/features/modeling/behavior/util/CategoryUtil.js +++ b/lib/features/modeling/behavior/util/CategoryUtil.js @@ -9,7 +9,7 @@ import { * * @param {BpmnFactory} bpmnFactory * - * @return {ModdleElement} categoryValue. + * @return {ModdleElement} */ export function createCategory(bpmnFactory) { return bpmnFactory.create('bpmn:Category'); @@ -20,7 +20,7 @@ export function createCategory(bpmnFactory) { * * @param {BpmnFactory} bpmnFactory * - * @return {ModdleElement} categoryValue. + * @return {ModdleElement} */ export function createCategoryValue(bpmnFactory) { return bpmnFactory.create('bpmn:CategoryValue'); @@ -33,7 +33,7 @@ export function createCategoryValue(bpmnFactory) { * @param {ModdleElement} category * @param {ModdleElement} definitions * - * @return {ModdleElement} categoryValue + * @return {ModdleElement} */ export function linkCategoryValue(categoryValue, category, definitions) { collectionAdd(category.get('categoryValue'), categoryValue); @@ -50,7 +50,7 @@ export function linkCategoryValue(categoryValue, category, definitions) { * * @param {ModdleElement} categoryValue * - * @return {ModdleElement} categoryValue + * @return {ModdleElement} */ export function unlinkCategoryValue(categoryValue) { var category = categoryValue.$parent; @@ -67,9 +67,8 @@ export function unlinkCategoryValue(categoryValue) { * Unlink category from parent * * @param {ModdleElement} category - * @param {ModdleElement} definitions * - * @return {ModdleElement} categoryValue + * @return {ModdleElement} */ export function unlinkCategory(category) { var definitions = category.$parent; From 550cc2244c6948ed9498304949802af2d139d7f7 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 11:55:21 +0200 Subject: [PATCH 332/989] fix(modeling): fix `LayoutUtil` JSDoc --- lib/features/modeling/behavior/util/LayoutUtil.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/features/modeling/behavior/util/LayoutUtil.js b/lib/features/modeling/behavior/util/LayoutUtil.js index 39e0f7e2e5..0cceb75e39 100644 --- a/lib/features/modeling/behavior/util/LayoutUtil.js +++ b/lib/features/modeling/behavior/util/LayoutUtil.js @@ -12,6 +12,10 @@ import { roundPoint } from 'diagram-js/lib/layout/LayoutUtil'; +/** + * @typedef {import('diagram-js/lib/util/Types').Point} Point + */ + export function findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hints) { @@ -98,13 +102,11 @@ export function findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hi * after the connection waypoints got updated. * * @param {Point} position - * @param {Array} newWaypoints - * @param {Array} oldWaypoints + * @param {Point[]} newWaypoints + * @param {Point[]} oldWaypoints * @param {Object} hints * - * @return {Object} result - * @return {Point} result.point - * @return {Point} result.delta + * @return { { point: Point, delta: Point } } result */ export function getAnchorPointAdjustment(position, newWaypoints, oldWaypoints, hints) { From fbf173776fa4f69794a3892d1a7f081873bdab17 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 13:09:22 +0200 Subject: [PATCH 333/989] fix(modeling): fix `LabelBehavior` JSDoc --- .../modeling/behavior/LabelBehavior.js | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/features/modeling/behavior/LabelBehavior.js b/lib/features/modeling/behavior/LabelBehavior.js index 28a789739b..3c63f8775c 100644 --- a/lib/features/modeling/behavior/LabelBehavior.js +++ b/lib/features/modeling/behavior/LabelBehavior.js @@ -57,6 +57,13 @@ var DEFAULT_LABEL_DIMENSIONS = { var NAME_PROPERTY = 'name'; var TEXT_PROPERTY = 'text'; +/** + * @typedef {import('diagram-js/lib/util/Types').Point} Point + * @typedef {import('diagram-js/lib/util/Types').Rect} Rect + * + * @typedef {Point[]} Line + */ + /** * A component that makes sure that external labels are added * together with respective elements and properly updated (DI wise) @@ -296,11 +303,11 @@ LabelBehavior.$inject = [ * Calculates a reference point delta relative to a new position * of a certain element's bounds * - * @param {Point} point - * @param {Bounds} oldBounds - * @param {Bounds} newBounds + * @param {Point} referencePoint + * @param {Rect} oldBounds + * @param {Rect} newBounds * - * @return {Delta} delta + * @return {Point} */ export function getReferencePointDelta(referencePoint, oldBounds, newBounds) { @@ -313,10 +320,10 @@ export function getReferencePointDelta(referencePoint, oldBounds, newBounds) { * Generates the nearest point (reference point) for a given point * onto given set of lines * - * @param {Array} lines * @param {Point} point + * @param {Line[]} lines * - * @param {Point} + * @return {Point} */ export function getReferencePoint(point, lines) { @@ -332,9 +339,9 @@ export function getReferencePoint(point, lines) { /** * Convert the given bounds to a lines array containing all edges * - * @param {Bounds|Point} bounds + * @param {Rect|Point} bounds * - * @return Array + * @return {Line[]} */ export function asEdges(bounds) { return [ @@ -384,9 +391,9 @@ export function asEdges(bounds) { /** * Returns the nearest line for a given point by distance * @param {Point} point - * @param Array lines + * @param {Line[]} lines * - * @return Array + * @return {Line} */ function getNearestLine(point, lines) { From d2e0b14d3eeb37ca24b7e9d5bb87b1bc76378d05 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 13:11:58 +0200 Subject: [PATCH 334/989] fix(modeling): fix `ConnectionLayoutUtil` JSDoc --- .../modeling/behavior/util/ConnectionLayoutUtil.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js b/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js index 20300f02c8..479c05888c 100644 --- a/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js +++ b/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js @@ -1,14 +1,18 @@ import { getAnchorPointAdjustment } from './LayoutUtil'; +/** + * @typedef {import('diagram-js/lib/util/Types').Point} Point + */ + /** * Calculate the new point after the connection waypoints got updated. * - * @param {djs.model.Label} label - * @param {Array} newWaypoints - * @param {Array} oldWaypoints + * @param {Point} position + * @param {Point[]} newWaypoints + * @param {Point[]} oldWaypoints * @param {Object} hints * - * @return {Point} point + * @return {Point} */ export function getConnectionAdjustment(position, newWaypoints, oldWaypoints, hints) { return getAnchorPointAdjustment(position, newWaypoints, oldWaypoints, hints).point; From 56b0054d66536a777d5f64af028daee49d03c03d Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 13:20:20 +0200 Subject: [PATCH 335/989] fix(modeling): fix `ResizeBehavior` JSDoc --- .../modeling/behavior/ResizeBehavior.js | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/features/modeling/behavior/ResizeBehavior.js b/lib/features/modeling/behavior/ResizeBehavior.js index 8c7d7ea36a..f15cd2807a 100644 --- a/lib/features/modeling/behavior/ResizeBehavior.js +++ b/lib/features/modeling/behavior/ResizeBehavior.js @@ -13,14 +13,35 @@ import { var HIGH_PRIORITY = 1500; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * + * @typedef {import('diagram-js/lib/util/Types').Dimensions} Dimensions + */ + +/** + * @type {Dimensions} + */ export var GROUP_MIN_DIMENSIONS = { width: 140, height: 120 }; +/** + * @type {Dimensions} + */ export var LANE_MIN_DIMENSIONS = { width: 300, height: 60 }; +/** + * @type {Dimensions} + */ export var PARTICIPANT_MIN_DIMENSIONS = { width: 300, height: 150 }; +/** + * @type {Dimensions} + */ export var SUB_PROCESS_MIN_DIMENSIONS = { width: 140, height: 120 }; +/** + * @type {Dimensions} + */ export var TEXT_ANNOTATION_MIN_DIMENSIONS = { width: 50, height: 30 }; /** From 6cdb960ea821cf90bbbedca0965c1b4eb241c567 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 13:21:43 +0200 Subject: [PATCH 336/989] fix(auto-resize): fix `BpmnAutoResizeProvider` JSDoc --- lib/features/auto-resize/BpmnAutoResizeProvider.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/features/auto-resize/BpmnAutoResizeProvider.js b/lib/features/auto-resize/BpmnAutoResizeProvider.js index 7f23105db8..da1e949e1c 100644 --- a/lib/features/auto-resize/BpmnAutoResizeProvider.js +++ b/lib/features/auto-resize/BpmnAutoResizeProvider.js @@ -6,6 +6,10 @@ import { forEach } from 'min-dash'; import AutoResizeProvider from 'diagram-js/lib/features/auto-resize/AutoResizeProvider'; +/** + * @typedef {import('diagram-js/lib/model/Types').Element} Element + * @typedef {import('diagram-js/lib/model/Types').Shape} Shape + */ /** * This module is a provider for automatically resizing parent BPMN elements @@ -27,7 +31,8 @@ BpmnAutoResizeProvider.$inject = [ /** * Check if the given target can be expanded * - * @param {djs.model.Shape} target + * @param {Element[]} elements + * @param {Shape} target * * @return {boolean} */ From ea5aaa863db7db9e01b80420d0a3a518f1cf3117 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 13:59:34 +0200 Subject: [PATCH 337/989] chore(BaseViewer): inline types --- lib/BaseViewer.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index 1acdffb4b2..eb5757518a 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -49,8 +49,20 @@ import { * @typedef {import('./BaseViewer').ModdleElementsById} ModdleElementsById * @typedef {import('./BaseViewer').OpenResult} OpenResult * @typedef {import('./BaseViewer').OpenError} OpenError - * @typedef {import('./BaseViewer').SaveXMLOptions} SaveXMLOptions - * @typedef {import('./BaseViewer').SaveXMLResult} SaveXMLResult + * + * @typedef { { + * format?: boolean; + * preamble?: boolean; + * } } SaveXMLOptions + * + * @typedef { { + * xml?: string; + * error?: Error; + * } } SaveXMLResult + * + * @typedef { { + * svg: string; + * } } SaveSVGResult */ /** From c83adc92286c61eb42e88bd5c626023f85407002 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 Apr 2023 14:18:35 +0200 Subject: [PATCH 338/989] fix(BaseViewer): inline types --- lib/BaseViewer.js | 52 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index eb5757518a..40605e0549 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -39,16 +39,40 @@ import { /** * @typedef {import('didi').ModuleDeclaration} ModuleDeclaration * - * @typedef {import('./BaseViewer').BaseModelerOptions} BaseModelerOptions - * @typedef {import('./BaseViewer').ModdleElement} ModdleElement - * @typedef {import('./BaseViewer').ImportXMLResult} ImportXMLResult - * @typedef {import('./BaseViewer').ImportXMLError} ImportXMLError - * @typedef {import('./BaseViewer').ImportDefinitionsResult} ImportDefinitionsResult - * @typedef {import('./BaseViewer').ImportDefinitionsError} ImportDefinitionsError - * @typedef {import('./BaseViewer').ModdleElement} ModdleElement - * @typedef {import('./BaseViewer').ModdleElementsById} ModdleElementsById - * @typedef {import('./BaseViewer').OpenResult} OpenResult - * @typedef {import('./BaseViewer').OpenError} OpenError + * @typedef {import('diagram-js/lib/core/EventBus').EventBusEventCallback} EventBusEventCallback + * + * @typedef { { + * width?: number|string; + * height?: number|string; + * position?: string; + * container?: string|HTMLElement; + * moddleExtensions?: ModdleExtensions; + * additionalModules?: ModuleDeclaration[]; + * } } BaseViewerOptions + * + * @typedef {any} ModdleElement + * + * @typedef {Record} ModdleElementsById + * + * @typedef {Object} ModdleExtension + * + * @typedef { { + * [key: string]: ModdleExtension; + * } } ModdleExtensions + * + * @typedef { { + * warnings: string[]; + * } } ImportXMLResult + * + * @typedef {ImportXMLResult & Error} ImportXMLError + * + * @typedef {ImportXMLResult} ImportDefinitionsResult + * + * @typedef {ImportXMLError} ImportDefinitionsError + * + * @typedef {ImportXMLResult} OpenResult + * + * @typedef {ImportXMLError} OpenError * * @typedef { { * format?: boolean; @@ -71,12 +95,12 @@ import { * Have a look at {@link Viewer}, {@link NavigatedViewer} or {@link Modeler} for * bundles that include actual features. * - * @param {BaseModelerOptions} [options] The options to configure the viewer. + * @param {BaseViewerOptions} [options] The options to configure the viewer. */ export default function BaseViewer(options) { /** - * @type {BaseModelerOptions} + * @type {BaseViewerOptions} */ options = assign({}, DEFAULT_OPTIONS, options); @@ -570,8 +594,8 @@ BaseViewer.prototype.destroy = function() { * * @param {string|string[]} events The event(s) to listen to. * @param {number} [priority] The priority with which to listen. - * @param {EventCallback} callback The callback. - * @param {*} [that] Value of `this` the callback will be called with. + * @param {EventBusEventCallback} callback The callback. + * @param {any} [that] Value of `this` the callback will be called with. */ BaseViewer.prototype.on = function(events, priority, callback, that) { return this.get('eventBus').on(events, priority, callback, that); From 2ae9ca86be9991722c7893bce2a459285b5b3248 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Mon, 3 Apr 2023 15:49:25 +0200 Subject: [PATCH 339/989] fix: correct `BaseViewer#on` method signature --- lib/BaseViewer.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index 40605e0549..3bda87146b 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -35,12 +35,15 @@ import { wrapForCompatibility } from './util/CompatibilityUtil'; +/** + * @template T + * + * @typedef {import('diagram-js/lib/core/EventBus').EventBusEventCallback} EventBusEventCallback + */ /** * @typedef {import('didi').ModuleDeclaration} ModuleDeclaration * - * @typedef {import('diagram-js/lib/core/EventBus').EventBusEventCallback} EventBusEventCallback - * * @typedef { { * width?: number|string; * height?: number|string; @@ -592,9 +595,11 @@ BaseViewer.prototype.destroy = function() { * * Remove an event listener via {@link BaseViewer#off}. * + * @template T + * * @param {string|string[]} events The event(s) to listen to. * @param {number} [priority] The priority with which to listen. - * @param {EventBusEventCallback} callback The callback. + * @param {EventBusEventCallback} callback The callback. * @param {any} [that] Value of `this` the callback will be called with. */ BaseViewer.prototype.on = function(events, priority, callback, that) { From 65d02ee8b498eb70e7b3a11580cd9fade99d36da Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 4 Apr 2023 09:04:18 +0200 Subject: [PATCH 340/989] fix(draw): fix `TextRenderer` JSDoc --- lib/draw/TextRenderer.js | 15 +++++++++++++-- lib/draw/TextRenderer.spec.ts | 31 +++++++++++++++++++------------ 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/lib/draw/TextRenderer.js b/lib/draw/TextRenderer.js index 05ad896d40..b4dc2cc128 100644 --- a/lib/draw/TextRenderer.js +++ b/lib/draw/TextRenderer.js @@ -8,7 +8,18 @@ var LINE_HEIGHT_RATIO = 1.2; var MIN_TEXT_ANNOTATION_HEIGHT = 30; /** - * @typedef { import('./TextRenderer').TextRendererConfig } TextRendererConfig + * @typedef { { + * fontFamily: string; + * fontSize: number; + * fontWeight: string; + * lineHeight: number; + * } } TextRendererStyle + * + * @typedef { { + * defaultStyle?: Partial; + * externalStyle?: Partial; + * } } TextRendererConfig + * * @typedef { import('diagram-js/lib/util/Text').TextLayoutConfig } TextLayoutConfig * * @typedef { import('diagram-js/lib/util/Types').Rect } Rect @@ -18,7 +29,7 @@ var MIN_TEXT_ANNOTATION_HEIGHT = 30; /** * Renders text and computes text bounding boxes. * - * @param {TextRendererConfig} config + * @param {TextRendererConfig} [config] */ export default function TextRenderer(config) { diff --git a/lib/draw/TextRenderer.spec.ts b/lib/draw/TextRenderer.spec.ts index 289855dbba..f5e7a5d670 100644 --- a/lib/draw/TextRenderer.spec.ts +++ b/lib/draw/TextRenderer.spec.ts @@ -1,27 +1,34 @@ import TextRenderer from './TextRenderer'; -// instantiate - new TextRenderer({ defaultStyle: { fontFamily: 'foo' } }); +const textRenderer = new TextRenderer(); -// api +const externalLabelBounds = textRenderer.getExternalLabelBounds({ + x: 100, + y: 100, + width: 100, + height: 100 +}, 'FOO\nBAR\n\BAZ'); -const textRenderer = new TextRenderer(); +const textAnnotationBounds = textRenderer.getTextAnnotationBounds({ + x: 100, + y: 100, + width: 100, + height: 100 +}, 'FOO\nBAR\n\BAZ'); + +let text = textRenderer.createText('foo'); -textRenderer.createText('FOO\nBar', { - align: 'center-top' +text = textRenderer.createText('foo', { + align: 'center-top', + padding: 10 }); const defaultStyle = textRenderer.getDefaultStyle(); -const externalStyle = textRenderer.getExternalStyle(); - -const { width, height } = textRenderer.getExternalLabelBounds({ - width: 100, - height: 20 -}, 'FOO\nBAR\n\WOOP'); +const externalStyle = textRenderer.getExternalStyle(); \ No newline at end of file From 8d3208ece43f86a1831b9892a6c201f404caeef0 Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 4 Apr 2023 09:14:49 +0200 Subject: [PATCH 341/989] fix(viewer): fix JSDoc --- lib/BaseViewer.js | 75 +++++++++++++++++++++++++----------------- lib/BaseViewer.spec.ts | 18 ++++++---- 2 files changed, 57 insertions(+), 36 deletions(-) diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index 3bda87146b..7cc469a166 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -90,6 +90,34 @@ import { * @typedef { { * svg: string; * } } SaveSVGResult + * + * @typedef { { + * xml: string; + * } } ImportParseStartEvent + * + * @typedef { { + * error?: ImportXMLError; + * definitions?: ModdleElement; + * elementsById?: ModdleElementsById; + * references?: ModdleElement[]; + * warnings: string[]; + * } } ImportParseCompleteEvent + * + * @typedef { { + * error?: ImportXMLError; + * warnings: string[]; + * } } ImportDoneEvent + * + * @typedef { { + * definitions: ModdleElement; + * } } SaveXMLStartEvent + * + * @typedef {SaveXMLResult} SaveXMLDoneEvent + * + * @typedef { { + * error?: Error; + * svg: string; + * } } SaveSVGDoneEvent */ /** @@ -145,11 +173,11 @@ inherits(BaseViewer, Diagram); * * @throws {ImportXMLError} An error thrown during the import of the XML. * - * @fires BaseViewer#ImportParseStart - * @fires BaseViewer#ImportParseComplete - * @fires Importer#ImportRenderStart - * @fires Importer#ImportRenderComplete - * @fires BaseViewer#ImportDone + * @fires BaseViewer#ImportParseStartEvent + * @fires BaseViewer#ImportParseCompleteEvent + * @fires Importer#ImportRenderStartEvent + * @fires Importer#ImportRenderCompleteEvent + * @fires BaseViewer#ImportDoneEvent * * @param {string} xml The BPMN 2.0 XML to be imported. * @param {ModdleElement|string} [bpmnDiagram] The optional diagram or Id of the BPMN diagram to open. @@ -194,9 +222,8 @@ BaseViewer.prototype.importXML = async function importXML(xml, bpmnDiagram) { /** * A `import.parse.start` event. * - * @event BaseViewer#ImportParseStart - * @type {Object} - * @property {string} xml The XML that is to be parsed. + * @event BaseViewer#ImportParseStartEvent + * @type {ImportParseStartEvent} */ xml = this._emit('import.parse.start', { xml: xml }) || xml; @@ -224,13 +251,8 @@ BaseViewer.prototype.importXML = async function importXML(xml, bpmnDiagram) { /** * A `import.parse.complete` event. * - * @event BaseViewer#ImportParseComplete - * @type {Object} - * @property {Error|null} error An error thrown when parsing the XML. - * @property {ModdleElement} definitions The definitions model element. - * @property {ModdleElementsById} elementsById The model elements by ID. - * @property {ModdleElement[]} references The referenced model elements. - * @property {string[]} warnings The warnings produced when parsing the XML. + * @event BaseViewer#ImportParseCompleteEvent + * @type {ImportParseCompleteEvent} */ definitions = this._emit('import.parse.complete', ParseCompleteEvent({ error: null, @@ -247,10 +269,8 @@ BaseViewer.prototype.importXML = async function importXML(xml, bpmnDiagram) { /** * A `import.parse.complete` event. * - * @event BaseViewer#ImportDone - * @type {Object} - * @property {ImportXMLError|null} error An error thrown during import. - * @property {string[]} warnings The warnings. + * @event BaseViewer#ImportDoneEvent + * @type {ImportDoneEvent} */ this._emit('import.done', { error: null, warnings: aggregatedWarnings }); @@ -405,9 +425,8 @@ BaseViewer.prototype.saveXML = async function saveXML(options) { /** * A `saveXML.start` event. * - * @event BaseViewer#SaveXMLStart - * @type {Object} - * @property {ModdleElement} definitions The definitions model element. + * @event BaseViewer#SaveXMLStartEvent + * @type {SaveXMLStartEvent} */ definitions = this._emit('saveXML.start', { definitions @@ -428,10 +447,8 @@ BaseViewer.prototype.saveXML = async function saveXML(options) { /** * A `saveXML.done` event. * - * @event BaseViewer#SaveXMLDone - * @type {Object} - * @property {Error} [error] An error thrown when saving the XML. - * @property {string} [xml] The saved XML. + * @event BaseViewer#SaveXMLDoneEvent + * @type {SaveXMLDoneEvent} */ this._emit('saveXML.done', result); @@ -496,10 +513,8 @@ BaseViewer.prototype.saveSVG = async function saveSVG() { /** * A `saveSVG.done` event. * - * @event BaseViewer#SaveSVGDone - * @type {Object} - * @property {Error} [error] An error thrown when saving the SVG. - * @property {string} [svg] The saved SVG. + * @event BaseViewer#SaveSVGDoneEvent + * @type {SaveSVGDoneEvent} */ this._emit('saveSVG.done', { error: err, diff --git a/lib/BaseViewer.spec.ts b/lib/BaseViewer.spec.ts index 21b6456f82..b81ad12f69 100644 --- a/lib/BaseViewer.spec.ts +++ b/lib/BaseViewer.spec.ts @@ -2,7 +2,13 @@ import CommandStack from 'diagram-js/lib/command/CommandStack'; import { Event } from 'diagram-js/lib/core/EventBus'; -import BaseViewer, { Events } from './BaseViewer'; +import BaseViewer, { + ImportDoneEvent, + ImportParseCompleteEvent, + ImportParseStartEvent, + SaveXMLDoneEvent, + SaveXMLStartEvent +} from './BaseViewer'; import OverlaysModule from 'diagram-js/lib/features/overlays'; @@ -119,11 +125,11 @@ export function testViewer(viewer: BaseViewer) { viewer.detach(); - viewer.on('import.parse.start', ({ xml }) => { + viewer.on('import.parse.start', ({ xml }) => { console.log(xml); }); - viewer.on('import.parse.complete', ({ + viewer.on('import.parse.complete', ({ error, definitions, elementsById, @@ -141,7 +147,7 @@ export function testViewer(viewer: BaseViewer) { console.log(definitions, elementsById, references); }); - viewer.on('import.done', ({ error, warnings }) => { + viewer.on('import.done', ({ error, warnings }) => { if (error) { console.error(error); } @@ -151,11 +157,11 @@ export function testViewer(viewer: BaseViewer) { } }); - viewer.on('saveXML.start', ({ definitions }) => { + viewer.on('saveXML.start', ({ definitions }) => { console.log(definitions); }); - viewer.on('saveXML.done', ({ error, xml }) => { + viewer.on('saveXML.done', ({ error, xml }) => { if (error) { console.error(error); } else { From 208d1fd691f42dc53aec3795c5e625ebdccf1dce Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 4 Apr 2023 09:27:52 +0200 Subject: [PATCH 342/989] fix(modeler): fix JSDoc --- lib/BaseModeler.js | 6 +++--- lib/Modeler.js | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/BaseModeler.js b/lib/BaseModeler.js index 398d65dca7..0e4bfebb59 100644 --- a/lib/BaseModeler.js +++ b/lib/BaseModeler.js @@ -6,7 +6,7 @@ import BaseViewer from './BaseViewer'; /** - * @typedef {import('./BaseViewer').BaseModelerOptions} BaseModelerOptions + * @typedef {import('./BaseViewer').BaseViewerOptions} BaseViewerOptions * @typedef {import('./BaseViewer').ModdleElement} ModdleElement * @typedef {import('./BaseViewer').ModdleElementsById} ModdleElementsById * @@ -18,7 +18,7 @@ import BaseViewer from './BaseViewer'; * * See {@link Modeler} for a fully-featured modeler. * - * @param {BaseModelerOptions} [options] The options to configure the modeler. + * @param {BaseViewerOptions} [options] The options to configure the modeler. */ export default function BaseModeler(options) { BaseViewer.call(this, options); @@ -41,7 +41,7 @@ inherits(BaseModeler, BaseViewer); /** * Create a moddle instance, attaching IDs to it. * - * @param {BaseModelerOptions} options + * @param {BaseViewerOptions} options * * @return {Moddle} */ diff --git a/lib/Modeler.js b/lib/Modeler.js index 2cce9c66c3..3c50af1b2a 100644 --- a/lib/Modeler.js +++ b/lib/Modeler.js @@ -61,7 +61,7 @@ var initialDiagram = /** - * @typedef {import('./BaseViewer').BaseModelerOptions} BaseModelerOptions + * @typedef {import('./BaseViewer').BaseViewerOptions} BaseViewerOptions * @typedef {import('./BaseViewer').ImportXMLResult} ImportXMLResult */ @@ -129,7 +129,7 @@ var initialDiagram = * var bpmnModeler = new Modeler({ additionalModules: [ overrideModule ]}); * ``` * - * @param {BaseModelerOptions} [options] The options to configure the modeler. + * @param {BaseViewerOptions} [options] The options to configure the modeler. */ export default function Modeler(options) { BaseModeler.call(this, options); From a944873de73e9b08516fb4f4d823c77fe1f81edc Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 4 Apr 2023 09:28:49 +0200 Subject: [PATCH 343/989] fix: generate types for `index.js` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5643be96bc..c15f05cae3 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "test": "karma start test/config/karma.unit.js", "distro": "node tasks/build-distro.js", "collect-translations": "cross-env COLLECT_TRANSLATIONS=1 npm test", - "generate-types": "del-cli \"lib/**/*.d.ts\" && npx bio-dts -r lib", + "generate-types": "del-cli \"lib/**/*.d.ts\" && npx bio-dts -r index.js lib", "test:distro": "node tasks/test-distro.js", "test:types": "tsc", "postversion": "run-s distro test:distro", From 168527323b78aab1bce053d1cbfa5aaaf3b702d1 Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 4 Apr 2023 09:29:17 +0200 Subject: [PATCH 344/989] chore: remove outdated type declarations --- .gitignore | 1 + lib/BaseModeler.d.ts | 5 - lib/BaseViewer.d.ts | 366 ---------------------- lib/Modeler.d.ts | 15 - lib/NavigatedViewer.d.ts | 3 - lib/Viewer.d.ts | 3 - lib/draw/BpmnRenderUtil.d.ts | 87 ----- lib/draw/BpmnRenderer.d.ts | 37 --- lib/draw/PathMap.d.ts | 66 ---- lib/draw/TextRenderer.d.ts | 52 --- lib/features/label-editing/LabelUtil.d.ts | 16 - lib/features/modeling/ElementFactory.d.ts | 114 ------- lib/features/modeling/Modeling.d.ts | 140 --------- lib/model/index.d.ts | 8 - lib/util/DiUtil.d.ts | 52 --- lib/util/ModelUtil.d.ts | 43 --- 16 files changed, 1 insertion(+), 1007 deletions(-) delete mode 100644 lib/BaseModeler.d.ts delete mode 100644 lib/BaseViewer.d.ts delete mode 100644 lib/Modeler.d.ts delete mode 100644 lib/NavigatedViewer.d.ts delete mode 100644 lib/Viewer.d.ts delete mode 100644 lib/draw/BpmnRenderUtil.d.ts delete mode 100644 lib/draw/BpmnRenderer.d.ts delete mode 100644 lib/draw/PathMap.d.ts delete mode 100644 lib/draw/TextRenderer.d.ts delete mode 100644 lib/features/label-editing/LabelUtil.d.ts delete mode 100644 lib/features/modeling/ElementFactory.d.ts delete mode 100644 lib/features/modeling/Modeling.d.ts delete mode 100644 lib/model/index.d.ts delete mode 100644 lib/util/DiUtil.d.ts delete mode 100644 lib/util/ModelUtil.d.ts diff --git a/.gitignore b/.gitignore index ce111f611f..0fa215154e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ node_modules/ dist/ coverage/ +lib/**/*.d.ts .idea *.iml .DS_Store \ No newline at end of file diff --git a/lib/BaseModeler.d.ts b/lib/BaseModeler.d.ts deleted file mode 100644 index d46fd404ca..0000000000 --- a/lib/BaseModeler.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import BaseViewer from "./BaseViewer"; - -export type Moddle = Object; - -export default class BaseModeler extends BaseViewer {} \ No newline at end of file diff --git a/lib/BaseViewer.d.ts b/lib/BaseViewer.d.ts deleted file mode 100644 index c293103cd0..0000000000 --- a/lib/BaseViewer.d.ts +++ /dev/null @@ -1,366 +0,0 @@ -import { ModuleDeclaration } from "didi"; - -import Diagram from 'diagram-js/lib/Diagram'; - -import { - Event, - EventCallback -} from 'diagram-js/lib/core/EventBus'; - -export type ModdleExtension = Object; - -export type ModdleExtensions = { - [key: string]: ModdleExtension; -}; - -export type BaseViewerOptions = { - width?: number|string; - height?: number|string; - position?: string; - container?: string|HTMLElement; - moddleExtensions?: ModdleExtensions; - additionalModules?: ModuleDeclaration[]; -} & Record; - -export type ModdleElement = Object; - -export type ModdleElementsById = { - [id: string]: ModdleElement; -}; - -export type ImportXMLResult = { - - /** - * The warnings produced when parsing the XML. - */ - warnings: string[]; -}; - -export type ImportXMLError = ImportXMLResult & Error; - -export type ImportDefinitionsResult = ImportXMLResult; - -export type ImportDefinitionsError = ImportXMLError; - -export type OpenResult = ImportXMLResult; - -export type OpenError = ImportXMLError; - -export type SaveXMLOptions = { - - /** - * Whether to format the XML. Defaults to `false`. - */ - format?: boolean; - - /** - * Whether to include the preamble. Defaults to `true`. - */ - preamble?: boolean; -}; - -export type SaveXMLResult = { - - /** - * The saved XML. - */ - xml?: string; - - /** - * An error thrown when saving the XML. - */ - error?: Error; -}; - -export type SaveSVGResult = { - svg: string; -}; - -declare namespace Events { - - /** - * A `import.parse.start` event. - */ - export type ImportParseStart = { - - /** - * The XML that is to be parsed. - */ - xml: string; - } & Event; - - /** - * A `import.parse.complete` event. - */ - export type ImportParseComplete = { - - /** - * An error thrown when parsing the XML. - */ - error?: ImportXMLError; - - /** - * The definitions model element. - */ - definitions?: ModdleElement; - - /** - * The model elements by ID. - */ - elementsById?: ModdleElementsById; - - /** - * The referenced model elements. - */ - references?: ModdleElement[]; - - /** - * The warnings produced when parsing the XML. - */ - warnings: string[]; - } & Event; - - /** - * A `import.done` event. - */ - export type ImportDone = { - - /** - * An error thrown when parsing the XML. - */ - error?: ImportXMLError; - - /** - * The warnings produced when parsing the XML. - */ - warnings: string[]; - } & Event; - - /** - * A `saveXML.start` event. - */ - export type SaveXMLStart = { - - /** - * The definitions model element. - */ - definitions: ModdleElement; - } & Event; - - /** - * A `saveXML.done` event. - */ - export type SaveXMLDone = SaveXMLResult & Event; - - /** - * A `saveSVG.done` event. - */ - export type SaveSVGDone = { - - /** - * An error thrown when saving the SVG. - */ - error?: Error; - - /** - * The saved SVG. - */ - svg: string; - } & Event; -} - -export default class BaseViewer extends Diagram { - - /** - * The constructor. - * - * @param options The options to configure the viewer. - */ - constructor(options?: BaseViewerOptions); - - /** - * Parse and render a BPMN 2.0 diagram. - * - * Once finished the viewer reports back the result to the - * provided callback function with (err, warnings). - * - * ## Life-Cycle Events - * - * During import the viewer will fire life-cycle events: - * - * * import.parse.start (about to read model from XML) - * * import.parse.complete (model read; may have worked or not) - * * import.render.start (graphical import start) - * * import.render.complete (graphical import finished) - * * import.done (everything done) - * - * You can use these events to hook into the life-cycle. - * - * @throws An error thrown during the import of the XML. - * - * @param xml The BPMN 2.0 XML to be imported. - * @param bpmnDiagram The optional diagram or Id of the BPMN diagram to open. - * - * @return A promise resolving with warnings that were produced during the import. - */ - importXML(xml: string, bpmnDiagram?: ModdleElement | string): Promise; - - /** - * Import parsed definitions and render a BPMN 2.0 diagram. - * - * Once finished the viewer reports back the result to the - * provided callback function with (err, warnings). - * - * ## Life-Cycle Events - * - * During import the viewer will fire life-cycle events: - * - * * import.render.start (graphical import start) - * * import.render.complete (graphical import finished) - * - * You can use these events to hook into the life-cycle. - * - * @throws An error thrown during the import of the definitions. - * - * @param definitions The definitions. - * @param bpmnDiagram The optional diagram or ID of the BPMN diagram to open. - * - * @return A promise resolving with warnings that were produced during the import. - */ - importDefinitions(definitions: ModdleElement, bpmnDiagram?: ModdleElement | string): Promise; - - /** - * Open diagram of previously imported XML. - * - * Once finished the viewer reports back the result to the - * provided callback function with (err, warnings). - * - * ## Life-Cycle Events - * - * During switch the viewer will fire life-cycle events: - * - * * import.render.start (graphical import start) - * * import.render.complete (graphical import finished) - * - * You can use these events to hook into the life-cycle. - * - * @throws An error thrown during opening. - * - * @param bpmnDiagramOrId The diagram or Id of the BPMN diagram to open. - * - * @return A promise resolving with warnings that were produced during opening. - */ - open(bpmnDiagramOrId: ModdleElement | string): Promise; - - /** - * Export the currently displayed BPMN 2.0 diagram as - * a BPMN 2.0 XML document. - * - * ## Life-Cycle Events - * - * During XML saving the viewer will fire life-cycle events: - * - * * saveXML.start (before serialization) - * * saveXML.serialized (after xml generation) - * * saveXML.done (everything done) - * - * You can use these events to hook into the life-cycle. - * - * @throws An error thrown during export. - * - * @param options The options. - * - * @return A promise resolving with the XML. - */ - saveXML(options?: SaveXMLOptions): Promise; - - /** - * Export the currently displayed BPMN 2.0 diagram as - * an SVG image. - * - * ## Life-Cycle Events - * - * During SVG saving the viewer will fire life-cycle events: - * - * * saveSVG.start (before serialization) - * * saveSVG.done (everything done) - * - * You can use these events to hook into the life-cycle. - * - * @throws An error thrown during export. - * - * @return A promise resolving with the SVG. - */ - saveSVG(): Promise; - - /** - * Return modules to instantiate with. - * - * @return The modules. - */ - getModules(): ModuleDeclaration[]; - - /** - * Remove all drawn elements from the viewer. - * - * After calling this method the viewer can still be reused for opening another - * diagram. - */ - clear(): void; - - /** - * Destroy the viewer instance and remove all its remainders from the document - * tree. - */ - destroy(): void; - - /** - * Register an event listener. - * - * Remove a previously added listener via {@link BaseViewer#off}. - * - * @param events The event(s) to listen to. - * @param callback The callback. - * @param that Value of `this` the callback will be called with. - */ - on(events: string | string[], callback: EventCallback, that?: any): void; - - /** - * Register an event listener. - * - * Remove a previously added listener via {@link BaseViewer#off}. - * - * @param events The event(s) to listen to. - * @param priority The priority with which to listen. - * @param callback The callback. - * @param that Value of `this` the callback will be called with. - */ - on(events: string | string[], priority: number, callback: EventCallback, that?: any): void; - - /** - * Remove an event listener. - * - * @param events The event(s). - * @param callback The callback. - */ - off(events: string | string[], callback?: EventCallback): void; - - /** - * Attach the viewer to an HTML element. - * - * @param parentNode The parent node to attach to. - */ - attachTo(parentNode: HTMLElement): void; - - /** - * Get the definitions model element. - * - * @returns The definitions model element. - */ - getDefinitions(): ModdleElement | undefined; - - /** - * Detach the viewer. - */ - detach(): void; -} \ No newline at end of file diff --git a/lib/Modeler.d.ts b/lib/Modeler.d.ts deleted file mode 100644 index dffc13746b..0000000000 --- a/lib/Modeler.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import BaseModeler from "./BaseModeler"; - -import { ImportXMLResult } from "./BaseViewer"; - -export default class Modeler extends BaseModeler { - - /** - * Create a new diagram to start modeling. - * - * @throws An error thrown during the import of the XML. - * - * @return A promise resolving with warnings that were produced during the import. - */ - createDiagram(): Promise; -} \ No newline at end of file diff --git a/lib/NavigatedViewer.d.ts b/lib/NavigatedViewer.d.ts deleted file mode 100644 index c63eb05db4..0000000000 --- a/lib/NavigatedViewer.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Viewer from "./Viewer"; - -export default class NavigatedViewer extends Viewer {} \ No newline at end of file diff --git a/lib/Viewer.d.ts b/lib/Viewer.d.ts deleted file mode 100644 index 5aedc63f5a..0000000000 --- a/lib/Viewer.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import BaseViewer from "./BaseViewer"; - -export default class Viewer extends BaseViewer {} \ No newline at end of file diff --git a/lib/draw/BpmnRenderUtil.d.ts b/lib/draw/BpmnRenderUtil.d.ts deleted file mode 100644 index daf21da08f..0000000000 --- a/lib/draw/BpmnRenderUtil.d.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { ModdleElement, DiagramElement } from '../model'; - -/** - * Checks if eventDefinition of the given element matches with semantic type. - * - * @param {ModdleElement} event - * @param {string} eventDefinitionType - * - * @return {boolean} - */ -export function isTypedEvent(event: ModdleElement, eventDefinitionType: string): boolean; - -/** - * Check if element is a throw event. - * - * @param {ModdleElement} event - * - * @return {boolean} - */ -export function isThrowEvent(event: ModdleElement): boolean; - -/** - * Check if element is a throw event. - * - * @param {ModdleElement} event - * - * @return {boolean} - */ -export function isCollection(element: any): boolean; - -/** - * @param {DiagramElement} element - * @param {string} defaultColor - * - * @return {string} - */ -export function getFillColor(element: DiagramElement, defaultColor: string): string; - -/** - * @param {DiagramElement} element - * @param {string} defaultColor - * - * @return {string} - */ -export function getStrokeColor(element: DiagramElement, defaultColor: string): string; - -/** - * @param {DiagramElement} element - * @param {string} defaultColor - * @param {string} defaultStrokeColor - * - * @return {string} - */ -export function getLabelColor(element: DiagramElement, defaultColor: string, defaultStrokeColor: string): string; - -/** - * @param {ShapeLike} shape - * - * @return {string} path - */ -export function getCirclePath(shape: ShapeLike): string; - -/** - * @param {ShapeLike} shape - * - * @return {string} path - */ -export function getRoundRectPath(shape: ShapeLike, borderRadius: any): string; - -/** - * @param {ShapeLike} shape - * - * @return {string} path - */ -export function getDiamondPath(shape: ShapeLike): string; - -/** - * @param {ShapeLike} shape - * - * @return {string} path - */ -export function getRectPath(shape: ShapeLike): string; - -export const black: string; - -export { getDi } from "../util/ModelUtil"; -export { getBusinessObject as getSemantic } from "../util/ModelUtil"; diff --git a/lib/draw/BpmnRenderer.d.ts b/lib/draw/BpmnRenderer.d.ts deleted file mode 100644 index b4f45c93fe..0000000000 --- a/lib/draw/BpmnRenderer.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import Canvas from 'diagram-js/lib/core/Canvas'; -import EventBus from 'diagram-js/lib/core/EventBus'; -import BaseRenderer from 'diagram-js/lib/draw/BaseRenderer'; -import Styles from 'diagram-js/lib/draw/Styles'; -import PathMap from './PathMap'; -import TextRenderer from './TextRenderer'; - -/** - * A renderer for BPMN elements - */ -export default class BpmnRenderer extends BaseRenderer { - - /** - * @param config - * @param eventBus - * @param styles - * @param pathMap - * @param canvas - * @param textRenderer - * @param priority - */ - constructor( - config: BpmnRendererConfig, - eventBus: EventBus, - styles: Styles, - pathMap: PathMap, - canvas: Canvas, - textRenderer: TextRenderer, - priority?: number - ); -} - -export type BpmnRendererConfig = Partial<{ - defaultFillColor: string; - defaultStrokeColor: string; - defaultLabelColor: string; -}>; diff --git a/lib/draw/PathMap.d.ts b/lib/draw/PathMap.d.ts deleted file mode 100644 index 5bbbf397dd..0000000000 --- a/lib/draw/PathMap.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Map containing SVG paths needed by BpmnRenderer - */ -export default class PathMap { - - /** - * Return raw path for the given ID. - * - * @param pathId - * - * @return raw path - */ - getRawPath(pathId: string): string; - - /** - * Scales the path to the given height and width. - *

Use case

- *

Use case is to scale the content of elements (event, gateways) based - * on the element bounding box's size. - *

- *

Why not transform

- *

Scaling a path with transform() will also scale the stroke and IE does not support - * the option 'non-scaling-stroke' to prevent this. - * Also there are use cases where only some parts of a path should be - * scaled.

- * - * @param pathId The ID of the path. - * @param param

- * Example param object scales the path to 60% size of the container (data.width, data.height). - *

-   *   {
-   *   xScaleFactor: 0.6,
-   *   yScaleFactor:0.6,
-   *   containerWidth: data.width,
-   *   containerHeight: data.height,
-   *   position: {
-   *     mx: 0.46,
-   *     my: 0.2,
-   *   }
-   *   }
-   *   
- *
    - *
  • targetpathwidth = xScaleFactor * containerWidth
  • - *
  • targetpathheight = yScaleFactor * containerHeight
  • - *
  • Position is used to set the starting coordinate of the path. M is computed: - *
      - *
    • position.x * containerWidth
    • - *
    • position.y * containerHeight
    • - *
    - * Center of the container
     position: {
    -   *     mx: 0.5,
    -   *     my: 0.5,
    -   *   }
    - * Upper left corner of the container - *
     position: {
    -   *     mx: 0.0,
    -   *     my: 0.0,
    -   *   }
    - *
  • - *
- *

- * - * @return scaled path - */ - getScaledPath(pathId: string, param: any): string; -} diff --git a/lib/draw/TextRenderer.d.ts b/lib/draw/TextRenderer.d.ts deleted file mode 100644 index ec8411c4fb..0000000000 --- a/lib/draw/TextRenderer.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Dimensions } from "diagram-js/lib/util/Types"; - -import { TextLayoutConfig } from 'diagram-js/lib/util/Text'; - -export type TextRendererStyle = { - fontFamily: string, - fontSize: number, - fontWeight: string, - lineHeight: number -}; - -export type TextRendererConfig = { - defaultStyle?: Partial, - externalStyle?: Partial -} - - -/** - * Renders text and computes text bounding boxes. - */ -export default class TextRenderer { - - constructor(config?: TextRendererConfig); - - /** - * Get the new bounds of an externally rendered, - * layouted label. - */ - getExternalLabelBounds(bounds: Dimensions, text: string): Dimensions; - - /** - * Get the new bounds of text annotation. - */ - getTextAnnotationBounds(bounds: Dimensions, text: string): Dimensions; - - /** - * Create a layouted text element. - * - * @return rendered text - */ - createText(text: string, options: TextLayoutConfig): SVGElement; - - /** - * Get default text style. - */ - getDefaultStyle(): TextRendererStyle; - - /** - * Get the external text style. - */ - getExternalStyle(): TextRendererStyle; -} \ No newline at end of file diff --git a/lib/features/label-editing/LabelUtil.d.ts b/lib/features/label-editing/LabelUtil.d.ts deleted file mode 100644 index ca67ec9245..0000000000 --- a/lib/features/label-editing/LabelUtil.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { DiagramElement } from '../../model'; - -/** - * @param {DiagramElement} element - * - * @return {string} label - */ -export function getLabel(element: DiagramElement): string; - -/** - * @param {DiagramElement} element - * @param {string} text - * - * @return {DiagramElement} element - */ -export function setLabel(element: DiagramElement, text: string): DiagramElement; diff --git a/lib/features/modeling/ElementFactory.d.ts b/lib/features/modeling/ElementFactory.d.ts deleted file mode 100644 index 8579bdf2a7..0000000000 --- a/lib/features/modeling/ElementFactory.d.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { default as BaseElementFactory } from 'diagram-js/lib/core/ElementFactory'; - -import { TranslateFunction } from 'diagram-js/lib/i18n/translate/translate'; - -import { - Base, - Connection, - ModelAttrsConnection, - ModelAttrsRoot, - ModelAttrsShape, - ModelTypeConnection, - ModelTypeRoot, - ModelTypeShape, - Root, - Shape -} from 'diagram-js/lib/model'; - -import { Dimension } from 'diagram-js/lib/util/Types'; - -import BpmnFactory from './BpmnFactory'; - -import { Moddle } from '../../BaseModeler'; -import { ModdleElement } from '../../BaseViewer'; - -declare module 'diagram-js/lib/model' { - interface ModelAttrsShape { - - /** - * The type of BPMN element. - */ - type: string; - - processRef?: ModdleElement; - isInterrupting?: boolean; - isForCompensation?: boolean; - isExpanded?: boolean; - triggeredByEvent?: boolean; - cancelActivity?: boolean; - - /** - * The type of the optional event definition. - */ - eventDefinitionType?: string; - } - - interface ModelAttrsConnection { - - /** - * The type of BPMN element. - */ - type: string; - - associationDirection?: 'None' | 'One' | 'Both'; - } -} - -export default class ElementFactory extends BaseElementFactory { - - /** - * A BPMN-aware factory for diagram elements. - * - * @param bpmnFactory - * @param moddle - * @param translate - */ - constructor(bpmnFactory: BpmnFactory, moddle: Moddle, translate: TranslateFunction); - - /** - * Create a BPMN connection. - * - * @param attrs The attributes of the connection to be created. - * - * @return The created connection. - */ - createBpmnElement(elementType: ModelTypeConnection, attrs: ModelAttrsConnection): Connection; - - /** - * Create a BPMN root. - * - * @param attrs The attributes of the root to be created. - * - * @return The created root. - */ - createBpmnElement(elementType: ModelTypeRoot, attrs: ModelAttrsRoot): Root; - - /** - * Create a BPMN shape. - * - * @param attrs The attributes of the shape to be created. - * - * @return The created shape. - */ - createBpmnElement(elementType: ModelTypeShape, attrs: ModelAttrsShape): Shape; - - /** - * Get the default size of a diagram element. - * - * @param element The element. - * @param di The DI. - * - * @returns Default width and height of the element. - */ - getDefaultSize(element: Base, di: ModdleElement): Dimension; - - /** - * Create participant. - * - * @param attrs Attributes or whether the participant is - * expanded. - * - * @returns The created participant. - */ - createParticipantShape(attrs?: ModelAttrsShape | boolean): Shape; -} \ No newline at end of file diff --git a/lib/features/modeling/Modeling.d.ts b/lib/features/modeling/Modeling.d.ts deleted file mode 100644 index 5bc1d86df4..0000000000 --- a/lib/features/modeling/Modeling.d.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { default as BaseModeling } from 'diagram-js/lib/features/modeling/Modeling'; - -import { ModdleElement } from '../../BaseViewer'; - -import BpmnRules from '../rules/BpmnRules'; -import CommandStack from 'diagram-js/lib/command/CommandStack'; -import ElementFactory from './ElementFactory'; -import EventBus from 'diagram-js/lib/core/EventBus'; - -import { - Base, - Root, - Shape -} from 'diagram-js/lib/model'; - -import { Rect } from 'diagram-js/lib/util/Types'; - -import { Colors } from '../../util/Types'; - -export interface UpdateLabelHints { - - /** - * Whether to remove the shape if the updated label is empty. - */ - removeShape: boolean; -} - -export default class Modeling extends BaseModeling { - - /** - * The BPMN 2.0 modeling entry point. - * - * @param eventBus - * @param elementFactory - * @param commandStack - * @param bpmnRules - */ - constructor(eventBus: EventBus, elementFactory: ElementFactory, commandStack: CommandStack, bpmnRules: BpmnRules); - - /** - * Update an element's label. - * - * @param element The element. - * @param newLabel The new label. - * @param newBounds The optional bounds of the label. - * @param hints The optional hints. - */ - updateLabel(element: Base, newLabel: string, newBounds?: Rect, hints?: UpdateLabelHints): void; - - /** - * Update a model element's properties. - * - * @param element The element. - * @param moddleElement The model element. - * @param properties The updated properties. - */ - updateModdleProperties(element: Base, moddleElement: ModdleElement, properties: Object): void; - - /** - * Update an element's properties. - * - * @param element The element. - * @param properties The updated properties. - */ - updateProperties(element: Base, properties: Object): void; - - /** - * Resize a lane. - * - * @param laneShape The lane. - * @param newBounds The new bounds of the lane. - * @param balanced Wether to resize neighboring lanes. - */ - resizeLane(laneShape: Shape, newBounds: Rect, balanced?: boolean): void; - - /** - * Add a lane. - * - * @param targetLaneShape The shape to add the lane to. - * @param location The location. - * - * @return The added lane. - */ - addLane(targetLaneShape: Shape, location: 'top' | 'bottom'): Shape; - - /** - * Split a lane. - * - * @param targetLane The lane to split. - * @param count The number of lanes to split the lane into. Must not - * exceed the number of existing lanes. - */ - splitLane(targetLane: Shape, count: number): void; - - /** - * Turn a process into a collaboration. - * - * @return The root of the collaboration. - */ - makeCollaboration(): Root; - - /** - * Transform a collaboration into a process. - * - * @return {Root} The root of the process. - */ - makeProcess(): Root; - - /** - * Update the referenced lanes of each flow node. - * - * @param flowNodeShapes The flow nodes to update. - * @param laneShapes The lanes. - */ - updateLaneRefs(flowNodeShapes: Shape[], laneShapes: Shape[]): void; - - /** - * Claim an ID. - * - * @param id The ID to claim. - * @param moddleElement The model element the ID is claimed for. - */ - claimId(id: string, moddleElement: ModdleElement): void; - - /** - * Unclaim an ID. - * - * @param id The ID to unclaim. - * @param moddleElement The model element the ID is claimed for. - */ - unclaimId(id: string, moddleElement: ModdleElement): void; - - /** - * Set the color(s) of one or many elements. - * - * @param elements The elements to set the color(s) for. - * @param colors The color(s) to set. - */ - setColor(elements: Base[], colors: Colors): void; -} \ No newline at end of file diff --git a/lib/model/index.d.ts b/lib/model/index.d.ts deleted file mode 100644 index 201ebcebfc..0000000000 --- a/lib/model/index.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ElementLike, ShapeLike, ConnectionLike } from "diagram-js/lib/core"; - -export type ModdleElement = Object; - -export type DiagramElement = ElementLike; - -export type ShapeLike = ShapeLike; -export type ConnectionLike = ConnectionLike; \ No newline at end of file diff --git a/lib/util/DiUtil.d.ts b/lib/util/DiUtil.d.ts deleted file mode 100644 index 92b2cfd027..0000000000 --- a/lib/util/DiUtil.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { DiagramElement, ModdleElement } from '../model'; - -/** - * @param {DiagramElement} element - * @param {ModdleElement} di - * - * @return {boolean} - */ -export function isExpanded(element: DiagramElement, di: ModdleElement): boolean; - -/** - * @param {DiagramElement} element - * - * @return {boolean} - */ -export function isInterrupting(element: DiagramElement): boolean; - -/** - * @param {DiagramElement} element - * - * @return {boolean} - */ -export function isEventSubProcess(element: DiagramElement): boolean; - -/** - * @param {DiagramElement} element - * @param {string} eventType - * - * @return {boolean} - */ -export function hasEventDefinition(element: DiagramElement, eventType: string): boolean; - -/** - * @param {DiagramElement} element - * - * @return {boolean} - */ -export function hasErrorEventDefinition(element: DiagramElement): boolean; - -/** - * @param {DiagramElement} element - * - * @return {boolean} - */ -export function hasEscalationEventDefinition(element: DiagramElement): boolean; - -/** - * @param {DiagramElement} element - * - * @return {boolean} - */ -export function hasCompensateEventDefinition(element: DiagramElement): boolean; diff --git a/lib/util/ModelUtil.d.ts b/lib/util/ModelUtil.d.ts deleted file mode 100644 index 195c6e93e8..0000000000 --- a/lib/util/ModelUtil.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { - ModdleElement, - DiagramElement -} from '../model'; - - -/** - * Is an element of the given BPMN type? - * - * @param {DiagramElement|ModdleElement} element - * @param {string} type - * - * @return {boolean} - */ -export function is(element: DiagramElement | ModdleElement, type: string): boolean; - -/** - * Return true if element has any of the given types. - * - * @param {DiagramElement} element - * @param {Array} types - * - * @return {boolean} - */ -export function isAny(element: DiagramElement, types: Array): boolean; - -/** - * Return the business object for a given element. - * - * @param {DiagramElement|ModdleElement} element - * - * @return {ModdleElement} - */ -export function getBusinessObject(element: DiagramElement | ModdleElement): ModdleElement; - -/** - * Return the di object for a given element. - * - * @param {DiagramElement} element - * - * @return {ModdleElement} - */ -export function getDi(element: DiagramElement): ModdleElement; From 904878594406af35ec57526dc2c2e553fb8a7528 Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 4 Apr 2023 15:05:34 +0200 Subject: [PATCH 345/989] chore: ignore `index.d.ts` --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0fa215154e..e5d50bf4fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ node_modules/ dist/ coverage/ +index.d.ts lib/**/*.d.ts .idea *.iml From a1022bfe07b72a469d0a69ded00263659e54aa77 Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 4 Apr 2023 16:02:06 +0200 Subject: [PATCH 346/989] chore(modeling): change `Base` to `Element` --- lib/features/modeling/Modeling.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/features/modeling/Modeling.js b/lib/features/modeling/Modeling.js index ddc394a46f..35d9fc616f 100644 --- a/lib/features/modeling/Modeling.js +++ b/lib/features/modeling/Modeling.js @@ -20,7 +20,7 @@ import UpdateLabelHandler from '../label-editing/cmd/UpdateLabelHandler'; * @typedef {import('./ElementFactory').default} ElementFactory * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus * - * @typedef {import('diagram-js/lib/model').Base} Base + * @typedef {import('diagram-js/lib/model').Element} Element * @typedef {import('diagram-js/lib/model').Root} Root * @typedef {import('diagram-js/lib/model').Shape} Shape * @@ -83,7 +83,7 @@ Modeling.prototype.getHandlers = function() { /** * Update an element's label. * - * @param {Base} element The element. + * @param {Element} element The element. * @param {string} newLabel The new label. * @param {Rect} [newBounds] The optional bounds of the label. * @param {UpdateLabelHints} [hints] The optional hints. @@ -116,7 +116,7 @@ Modeling.prototype.connect = function(source, target, attrs, hints) { /** * Update a model element's properties. * - * @param {Base} element The element. + * @param {Element} element The element. * @param {ModdleElement} moddleElement The model element. * @param {Object} properties The updated properties. */ @@ -131,7 +131,7 @@ Modeling.prototype.updateModdleProperties = function(element, moddleElement, pro /** * Update an element's properties. * - * @param {Base} element The element. + * @param {Element} element The element. * @param {Object} properties The updated properties. */ Modeling.prototype.updateProperties = function(element, properties) { From 42790fef4870f8bfb66a8516b03c4e05f44ab8fb Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 11 Apr 2023 14:29:12 +0200 Subject: [PATCH 347/989] fix(ElementFactory): fix JSDoc --- lib/features/modeling/ElementFactory.js | 115 +++++++++++++----- lib/features/modeling/ElementFactory.test.ts | 26 ++++ .../custom-elements/CustomElementFactory.js | 4 +- 3 files changed, 115 insertions(+), 30 deletions(-) diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index a11ff1b97d..cd67d8846a 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -33,36 +33,52 @@ import { } from '../../util/CompatibilityUtil'; /** - * @typedef {import('diagram-js/lib/model').Base} Base + * @typedef {import('diagram-js/lib/model').Element} Element * @typedef {import('diagram-js/lib/model').Connection} Connection + * @typedef {import('diagram-js/lib/model').Label} Label * @typedef {import('diagram-js/lib/model').Root} Root * @typedef {import('diagram-js/lib/model').Shape} Shape - * @typedef {import('diagram-js/lib/model').ModelAttrs} ModelAttrs - * @typedef {import('diagram-js/lib/model').ModelAttrsConnection} ModelAttrsConnection - * @typedef {import('diagram-js/lib/model').ModelAttrsRoot} ModelAttrsRoot - * @typedef {import('diagram-js/lib/model').ModelAttrsShape} ModelAttrsShape - * @typedef {import('diagram-js/lib/model').ModelType} ModelType - * @typedef {import('diagram-js/lib/model').ModelTypeConnection} ModelTypeConnection - * @typedef {import('diagram-js/lib/model').ModelTypeRoot} ModelTypeRoot - * @typedef {import('diagram-js/lib/model').ModelTypeShape} ModelTypeShape * - * @typedef {import('diagram-js/lib/i18n/translate/translate').TranslateFunction} TranslateFunction + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate * * @typedef {import('diagram-js/lib/util/Types').Dimensions} Dimensions * * @typedef {import('./BpmnFactory').default} BpmnFactory - * @typedef {import('./ElementFactory').ModelAttrsBPMN} ModelAttrsBPMN * * @typedef {import('../../BaseModeler').Moddle} Moddle * @typedef {import('../../BaseViewer').ModdleElement} ModdleElement */ +/** + * @typedef { { + * businessObject: any; + * di: any; + * type: string; + * } & Element } BpmnElement + * + * @typedef { { + * associationDirection: 'None' | 'One' | 'Both'; + * cancelActivity: boolean; + * eventDefinitionType: string; + * isExpanded: boolean; + * isForCompensation: boolean; + * isInterrupting: boolean; + * processRef: ModdleElement; + * triggeredByEvent: boolean; + * } } BpmnAttributes + * + * @typedef {Connection & BpmnElement} BpmnConnection + * @typedef {Label & BpmnElement} BpmnLabel + * @typedef {Root & BpmnElement} BpmnRoot + * @typedef {Shape & BpmnElement} BpmnShape + */ + /** * A BPMN-aware factory for diagram elements. * * @param {BpmnFactory} bpmnFactory * @param {Moddle} moddle - * @param {TranslateFunction} translate + * @param {Translate} translate */ export default function ElementFactory(bpmnFactory, moddle, translate) { BaseElementFactory.call(this); @@ -80,15 +96,41 @@ ElementFactory.$inject = [ 'translate' ]; -ElementFactory.prototype.baseCreate = BaseElementFactory.prototype.create; +ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create; + +/** + * Create a root element. + * + * @overlord + * @param {'root'} type + * @param {Partial & Partial} [attrs] + * @return {BpmnRoot} + */ /** - * Create an element. + * Create a shape. * - * @param {ModelType} elementType The type of the element to be created. - * @param {ModelAttrs} attrs The attributes to create the element with. + * @overlord + * @param {'shape'} type + * @param {Partial & Partial} [attrs] + * @return {BpmnShape} + */ + +/** + * Create a connection. * - * @returns {Base} The created diagram element. + * @overlord + * @param {'connection'} type + * @param {Partial & Partial} [attrs] + * @return {BpmnConnection} + */ + +/** + * Create a label. + * + * @param {'label'} type + * @param {Partial & Partial} [attrs] + * @return {BpmnLabel} */ ElementFactory.prototype.create = function(elementType, attrs) { @@ -97,19 +139,36 @@ ElementFactory.prototype.create = function(elementType, attrs) { // and wired via attrs if (elementType === 'label') { var di = attrs.di || this._bpmnFactory.createDiLabel(); - return this.baseCreate(elementType, assign({ type: 'label', di: di }, DEFAULT_LABEL_SIZE, attrs)); + return this._baseCreate(elementType, assign({ type: 'label', di: di }, DEFAULT_LABEL_SIZE, attrs)); } return this.createBpmnElement(elementType, attrs); }; /** - * Create a BPMN-specific element. + * Create a BPMN root element. * - * @param {ModelTypeConnection|ModelTypeRoot|ModelTypeShape} elementType The type of the element to be created. - * @param {ModelAttrsConnection|ModelAttrsRoot|ModelAttrsShape} attrs The attributes to create the element with. + * @overlord + * @param {'root'} elementType + * @param {Partial & Partial} [attrs] + * @return {BpmnRoot} + */ + +/** + * Create a BPMN shape. + * + * @overlord + * @param {'shape'} elementType + * @param {Partial & Partial} [attrs] + * @return {BpmnShape} + */ + +/** + * Create a BPMN connection. * - * @returns {Connection|Root|Shape} The created diagram element. + * @param {'connection'} elementType + * @param {Partial & Partial} [attrs] + * @return {BpmnConnection} */ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { var size, @@ -210,13 +269,13 @@ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { di: di }); - return this.baseCreate(elementType, attrs); + return this._baseCreate(elementType, attrs); }; /** * Get the default size of a diagram element. * - * @param {Base} element The element. + * @param {BpmnElement} element The element. * @param {ModdleElement} di The DI. * * @returns {Dimensions} Default width and height of the element. @@ -281,10 +340,10 @@ ElementFactory.prototype.getDefaultSize = function(element, di) { /** * Create participant. * - * @param {boolean|Object} [attrs] Attributes or whether the participant is + * @param {boolean|Partial & Partial} [attrs] Attributes or whether the participant is * expanded. * - * @returns {Shape} The created participant. + * @returns {BpmnShape} The created participant. */ ElementFactory.prototype.createParticipantShape = function(attrs) { @@ -309,7 +368,7 @@ ElementFactory.prototype.createParticipantShape = function(attrs) { * Apply attributes from a map to the given element, * remove attribute from the map on application. * - * @param {Base} element + * @param {Element} element * @param {Object} attrs (in/out map of attributes) * @param {Array} attributeNames name of attributes to apply * @@ -328,7 +387,7 @@ function applyAttributes(element, attrs, attributeNames) { * Apply named property to element and drain it from the attrs * collection. * - * @param {Base} element + * @param {Element} element * @param {Object} attrs (in/out map of attributes) * @param {string} attributeName to apply * diff --git a/lib/features/modeling/ElementFactory.test.ts b/lib/features/modeling/ElementFactory.test.ts index 46275d6397..40adcd3458 100644 --- a/lib/features/modeling/ElementFactory.test.ts +++ b/lib/features/modeling/ElementFactory.test.ts @@ -58,6 +58,32 @@ elementFactory.create('label', { type: 'bpmn:Task' }); +elementFactory.create('connection', { + type: 'bpmn:Association', + associationDirection: 'One' +}); + +elementFactory.create('shape', { + type: 'bpmn:BoundaryEvent', + cancelActivity: true, + eventDefinitionType: 'bpmn:ErrorEventDefinition' +}); + +elementFactory.create('shape', { + type: 'bpmn:Task', + isForCompensation: false +}); + +elementFactory.create('shape', { + type: 'bpmn:Participant', + processRef: {} +}); + +elementFactory.create('shape', { + type: 'bpmn:SubProcess', + triggeredByEvent: true +}); + elementFactory.createBpmnElement('connection', { type: 'bpmn:SequenceFlow' }); diff --git a/test/integration/custom-elements/CustomElementFactory.js b/test/integration/custom-elements/CustomElementFactory.js index a7d159c89e..000983a37a 100644 --- a/test/integration/custom-elements/CustomElementFactory.js +++ b/test/integration/custom-elements/CustomElementFactory.js @@ -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,7 +32,7 @@ export default function CustomElementFactory(injector) { size = self._getCustomElementSize(type); - return self.baseCreate(elementType, + return self._baseCreate(elementType, assign({ type: elementType, businessObject: businessObject }, attrs, size)); } From 78edc64408f57f33a5ba4872b3a9f4eb9fdce507 Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 4 Apr 2023 16:42:45 +0200 Subject: [PATCH 348/989] fix(BpmnFactory): fix JSDoc --- lib/BaseModeler.js | 2 +- lib/features/modeling/BpmnFactory.js | 65 ++++++++++++++++++++++++---- 2 files changed, 58 insertions(+), 9 deletions(-) diff --git a/lib/BaseModeler.js b/lib/BaseModeler.js index 0e4bfebb59..4f87fe059f 100644 --- a/lib/BaseModeler.js +++ b/lib/BaseModeler.js @@ -10,7 +10,7 @@ import BaseViewer from './BaseViewer'; * @typedef {import('./BaseViewer').ModdleElement} ModdleElement * @typedef {import('./BaseViewer').ModdleElementsById} ModdleElementsById * - * @typedef {import('.').Moddle} Moddle + * @typedef {any} Moddle */ /** diff --git a/lib/features/modeling/BpmnFactory.js b/lib/features/modeling/BpmnFactory.js index 2cb1257200..86fab9b326 100644 --- a/lib/features/modeling/BpmnFactory.js +++ b/lib/features/modeling/BpmnFactory.js @@ -12,14 +12,27 @@ import { is } from '../../util/ModelUtil'; - +/** + * @typedef {import('../../BaseModeler').Moddle} Moddle + * @typedef {import('../../BaseViewer').ModdleElement} ModdleElement + * + * @typedef {import('diagram-js/lib/util/Types').Point} Point + */ + +/** + * @param {Moddle} moddle + */ export default function BpmnFactory(moddle) { this._model = moddle; } BpmnFactory.$inject = [ 'moddle' ]; - +/** + * @param {ModdleElement} element + * + * @returns {boolean} + */ BpmnFactory.prototype._needsId = function(element) { return isAny(element, [ 'bpmn:RootElement', @@ -41,6 +54,9 @@ BpmnFactory.prototype._needsId = function(element) { ]); }; +/** + * @param {ModdleElement} element + */ BpmnFactory.prototype._ensureId = function(element) { if (element.id) { this._model.ids.claim(element.id, element); @@ -70,7 +86,14 @@ BpmnFactory.prototype._ensureId = function(element) { } }; - +/** + * Create BPMN element. + * + * @param {string} type + * @param {Object} [attrs] + * + * @returns {ModdleElement} + */ BpmnFactory.prototype.create = function(type, attrs) { var element = this._model.create(type, attrs || {}); @@ -79,14 +102,18 @@ BpmnFactory.prototype.create = function(type, attrs) { return element; }; - +/** + * @returns {ModdleElement} + */ BpmnFactory.prototype.createDiLabel = function() { return this.create('bpmndi:BPMNLabel', { bounds: this.createDiBounds() }); }; - +/** + * @returns {ModdleElement} + */ BpmnFactory.prototype.createDiShape = function(semantic, attrs) { return this.create('bpmndi:BPMNShape', assign({ bpmnElement: semantic, @@ -94,12 +121,18 @@ BpmnFactory.prototype.createDiShape = function(semantic, attrs) { }, attrs)); }; - +/** + * @returns {ModdleElement} + */ BpmnFactory.prototype.createDiBounds = function(bounds) { return this.create('dc:Bounds', bounds); }; - +/** + * @param {Point[]} waypoints + * + * @returns {ModdleElement[]} + */ BpmnFactory.prototype.createDiWaypoints = function(waypoints) { var self = this; @@ -108,11 +141,21 @@ BpmnFactory.prototype.createDiWaypoints = function(waypoints) { }); }; +/** + * @param {Point} point + * + * @returns {ModdleElement} + */ BpmnFactory.prototype.createDiWaypoint = function(point) { return this.create('dc:Point', pick(point, [ 'x', 'y' ])); }; - +/** + * @param {ModdleElement} semantic + * @param {Object} attrs + * + * @returns {ModdleElement} + */ BpmnFactory.prototype.createDiEdge = function(semantic, attrs) { return this.create('bpmndi:BPMNEdge', assign({ bpmnElement: semantic, @@ -120,6 +163,12 @@ BpmnFactory.prototype.createDiEdge = function(semantic, attrs) { }, attrs)); }; +/** + * @param {ModdleElement} semantic + * @param {Object} attrs + * + * @returns {ModdleElement} + */ BpmnFactory.prototype.createDiPlane = function(semantic, attrs) { return this.create('bpmndi:BPMNPlane', assign({ bpmnElement: semantic From d210d6bb466899921ebdbbe7453731c5d92a7986 Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 4 Apr 2023 16:53:31 +0200 Subject: [PATCH 349/989] fix(BpmnLayouter): fix JSDoc --- lib/features/modeling/BpmnLayouter.js | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/lib/features/modeling/BpmnLayouter.js b/lib/features/modeling/BpmnLayouter.js index 0f5d769f54..16da8b4db5 100644 --- a/lib/features/modeling/BpmnLayouter.js +++ b/lib/features/modeling/BpmnLayouter.js @@ -22,6 +22,21 @@ import { import { is } from '../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/util/Types').Point} Point + * + * @typedef {import('./ElementFactory').BpmnConnection} BpmnConnection + * @typedef {import('./ElementFactory').BpmnElement} BpmnElement + * + * @typedef { { + * source?: BpmnElement; + * target?: BpmnElement; + * waypoints?: Point[]; + * connectionStart?: Point; + * connectionEnd?: Point; + * } } LayoutConnectionHints + */ + var ATTACH_ORIENTATION_PADDING = -10, BOUNDARY_TO_HOST_THRESHOLD = 40; @@ -43,12 +58,18 @@ var orientationDirectionMapping = { left: 'l' }; - export default function BpmnLayouter() {} inherits(BpmnLayouter, BaseLayouter); - +/** + * Returns waypoints of laid out connection. + * + * @param {BpmnConnection} connection + * @param {LayoutConnectionHints} [hints] + * + * @return {Point[]} + */ BpmnLayouter.prototype.layoutConnection = function(connection, hints) { if (!hints) { hints = {}; From 75b438c1579fd93c2a5965f97616f6e8631a7e7e Mon Sep 17 00:00:00 2001 From: Philipp Date: Wed, 5 Apr 2023 10:07:34 +0200 Subject: [PATCH 350/989] fix(BpmnUpdater): fix JSDoc --- lib/features/modeling/BpmnUpdater.js | 120 ++++++++++++++++++------ lib/features/modeling/ElementFactory.js | 1 + 2 files changed, 92 insertions(+), 29 deletions(-) diff --git a/lib/features/modeling/BpmnUpdater.js b/lib/features/modeling/BpmnUpdater.js index 6eb8ba4955..dc0a488e00 100644 --- a/lib/features/modeling/BpmnUpdater.js +++ b/lib/features/modeling/BpmnUpdater.js @@ -6,37 +6,53 @@ import { import inherits from 'inherits-browser'; import { - remove as collectionRemove, - add as collectionAdd + add as collectionAdd, + remove as collectionRemove } from 'diagram-js/lib/util/Collections'; -import { - Label -} from 'diagram-js/lib/model'; - import { getBusinessObject, getDi, is } from '../../util/ModelUtil'; -import { - isAny -} from './util/ModelingUtil'; +import { isAny } from './util/ModelingUtil'; -import { - delta -} from 'diagram-js/lib/util/PositionUtil'; +import { isLabel } from '../../util/LabelUtil'; + +import { delta } from 'diagram-js/lib/util/PositionUtil'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; /** - * A handler responsible for updating the underlying BPMN 2.0 XML + DI - * once changes on the diagram happen + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('./BpmnFactory').default} BpmnFactory + * @typedef {import('diagram-js/lib/layout/CroppingConnectionDocking').default} CroppingConnectionDocking + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + * + * @typedef {import('../../BaseViewer').ModdleElement} ModdleElement + * + * @typedef {import('./ElementFactory').BpmnConnection} BpmnConnection + * @typedef {import('./ElementFactory').BpmnElement} BpmnElement + * @typedef {import('./ElementFactory').BpmnShape} BpmnShape + * @typedef {import('./ElementFactory').BpmnParent} BpmnParent + */ + +/** + * A handler responsible for updating the underlying BPMN 2.0 XML & DI + * once changes on the diagram happen. + * + * @param {EventBus} eventBus + * @param {BpmnFactory} bpmnFactory + * @param {CroppingConnectionDocking} connectionDocking + * @param {Translate} translate */ export default function BpmnUpdater( - eventBus, bpmnFactory, connectionDocking, - translate) { + eventBus, + bpmnFactory, + connectionDocking, + translate +) { CommandInterceptor.call(this, eventBus); @@ -286,6 +302,12 @@ BpmnUpdater.$inject = [ // implementation ////////////////////// +/** + * @param { { + * shape: BpmnShape; + * host: BpmnShape; + * } } context + */ BpmnUpdater.prototype.updateAttachment = function(context) { var shape = context.shape, @@ -295,10 +317,14 @@ BpmnUpdater.prototype.updateAttachment = function(context) { businessObject.attachedToRef = host && host.businessObject; }; +/** + * @param {BpmnElement} element + * @param {BpmnParent} oldParent + */ BpmnUpdater.prototype.updateParent = function(element, oldParent) { // do not update BPMN 2.0 label parent - if (element instanceof Label) { + if (isLabel(element)) { return; } @@ -345,7 +371,9 @@ BpmnUpdater.prototype.updateParent = function(element, oldParent) { this.updateDiParent(di, parentDi); }; - +/** + * @param {BpmnShape} shape + */ BpmnUpdater.prototype.updateBounds = function(shape) { var di = getDi(shape), @@ -361,7 +389,7 @@ BpmnUpdater.prototype.updateBounds = function(shape) { }); } - var target = (shape instanceof Label) ? this._getLabel(di) : di; + var target = isLabel(shape) ? this._getLabel(di) : di; var bounds = target.bounds; @@ -378,6 +406,11 @@ BpmnUpdater.prototype.updateBounds = function(shape) { }); }; +/** + * @param {ModdleElement} businessObject + * @param {ModdleElement} newContainment + * @param {ModdleElement} oldContainment + */ BpmnUpdater.prototype.updateFlowNodeRefs = function(businessObject, newContainment, oldContainment) { if (oldContainment === newContainment) { @@ -397,8 +430,11 @@ BpmnUpdater.prototype.updateFlowNodeRefs = function(businessObject, newContainme } }; - -// update existing sourceElement and targetElement di information +/** + * @param {BpmnConnection} connection + * @param {BpmnElement} newSource + * @param {BpmnElement} newTarget + */ BpmnUpdater.prototype.updateDiConnection = function(connection, newSource, newTarget) { var connectionDi = getDi(connection), newSourceDi = getDi(newSource), @@ -414,7 +450,10 @@ BpmnUpdater.prototype.updateDiConnection = function(connection, newSource, newTa }; - +/** + * @param {ModdleElement} di + * @param {ModdleElement} parentDi + */ BpmnUpdater.prototype.updateDiParent = function(di, parentDi) { if (parentDi && !is(parentDi, 'bpmndi:BPMNPlane')) { @@ -436,6 +475,11 @@ BpmnUpdater.prototype.updateDiParent = function(di, parentDi) { } }; +/** + * @param {ModdleElement} element + * + * @returns {ModdleElement} + */ function getDefinitions(element) { while (element && !is(element, 'bpmn:Definitions')) { element = element.$parent; @@ -444,6 +488,11 @@ function getDefinitions(element) { return element; } +/** + * @param {ModdleElement} container + * + * @returns {ModdleElement} + */ BpmnUpdater.prototype.getLaneSet = function(container) { var laneSet, laneSets; @@ -479,6 +528,11 @@ BpmnUpdater.prototype.getLaneSet = function(container) { return laneSet; }; +/** + * @param {ModdleElement} businessObject + * @param {ModdleElement} newParent + * @param {ModdleElement} visualParent + */ BpmnUpdater.prototype.updateSemanticParent = function(businessObject, newParent, visualParent) { var containment, @@ -632,14 +686,22 @@ BpmnUpdater.prototype.updateSemanticParent = function(businessObject, newParent, } }; - +/** + * @param {BpmnConnection} connection + */ BpmnUpdater.prototype.updateConnectionWaypoints = function(connection) { var di = getDi(connection); di.set('waypoint', this._bpmnFactory.createDiWaypoints(connection.waypoints)); }; - +/** + * @param { { + * connection: BpmnConnection; + * parent: BpmnParent; + * newParent: BpmnParent; + * } } context + */ BpmnUpdater.prototype.updateConnection = function(context) { var connection = context.connection, businessObject = getBusinessObject(connection), @@ -715,11 +777,11 @@ BpmnUpdater.prototype._getLabel = function(di) { /** - * Make sure the event listener is only called - * if the touched element is a BPMN element. + * Call function if shape or connection is BPMN element. * * @param {Function} fn - * @return {Function} guarded function + * + * @return {Function} */ function ifBpmn(fn) { @@ -737,9 +799,9 @@ function ifBpmn(fn) { /** * Return dc:Bounds of bpmndi:BPMNLabel if exists. * - * @param {djs.model.shape} shape + * @param {BpmnShape} shape * - * @returns {Object|undefined} + * @returns {ModdleElement|undefined} */ function getEmbeddedLabelBounds(shape) { if (!is(shape, 'bpmn:Activity')) { diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index cd67d8846a..1fcab141fa 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -71,6 +71,7 @@ import { * @typedef {Label & BpmnElement} BpmnLabel * @typedef {Root & BpmnElement} BpmnRoot * @typedef {Shape & BpmnElement} BpmnShape + * @typedef {BpmnRoot | BpmnShape} BpmnParent */ /** From bc8022503055fd4562cf0aa1987c762a57aa5534 Mon Sep 17 00:00:00 2001 From: Philipp Date: Wed, 5 Apr 2023 10:30:28 +0200 Subject: [PATCH 351/989] chore: move model types to dedicated `model` directory --- lib/BaseModeler.js | 3 +- lib/BaseViewer.js | 21 ++++++++++--- lib/features/modeling/BpmnFactory.js | 4 +-- lib/features/modeling/BpmnLayouter.js | 10 +++--- lib/features/modeling/BpmnUpdater.js | 11 +++---- lib/features/modeling/ElementFactory.js | 41 +++++-------------------- lib/model/Types.ts | 39 +++++++++++++++++++++++ 7 files changed, 78 insertions(+), 51 deletions(-) create mode 100644 lib/model/Types.ts diff --git a/lib/BaseModeler.js b/lib/BaseModeler.js index 4f87fe059f..0e34460231 100644 --- a/lib/BaseModeler.js +++ b/lib/BaseModeler.js @@ -7,10 +7,9 @@ import BaseViewer from './BaseViewer'; /** * @typedef {import('./BaseViewer').BaseViewerOptions} BaseViewerOptions - * @typedef {import('./BaseViewer').ModdleElement} ModdleElement * @typedef {import('./BaseViewer').ModdleElementsById} ModdleElementsById * - * @typedef {any} Moddle + * @typedef {import('./model/Types').ModdleElement} ModdleElement */ /** diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index 7cc469a166..aaa54497f1 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -44,6 +44,10 @@ import { /** * @typedef {import('didi').ModuleDeclaration} ModuleDeclaration * + * @typedef {import('./model/Types').Moddle} Moddle + * @typedef {import('./model/Types').ModdleElement} ModdleElement + * @typedef {import('./model/Types').ModdleExtension} ModdleExtension + * * @typedef { { * width?: number|string; * height?: number|string; @@ -53,12 +57,8 @@ import { * additionalModules?: ModuleDeclaration[]; * } } BaseViewerOptions * - * @typedef {any} ModdleElement - * * @typedef {Record} ModdleElementsById * - * @typedef {Object} ModdleExtension - * * @typedef { { * [key: string]: ModdleExtension; * } } ModdleExtensions @@ -135,6 +135,9 @@ export default function BaseViewer(options) { */ options = assign({}, DEFAULT_OPTIONS, options); + /** + * @type {Moddle} + */ this._moddle = this._createModdle(options); /** @@ -734,6 +737,11 @@ BaseViewer.prototype._emit = function(type, event) { return this.get('eventBus').fire(type, event); }; +/** + * @param {BaseViewerOptions} options + * + * @returns {HTMLElement} + */ BaseViewer.prototype._createContainer = function(options) { const container = domify('
'); @@ -747,6 +755,11 @@ BaseViewer.prototype._createContainer = function(options) { return container; }; +/** + * @param {BaseViewerOptions} options + * + * @returns {Moddle} + */ BaseViewer.prototype._createModdle = function(options) { const moddleOptions = assign({}, this._moddleExtensions, options.moddleExtensions); diff --git a/lib/features/modeling/BpmnFactory.js b/lib/features/modeling/BpmnFactory.js index 86fab9b326..60a7c6a31c 100644 --- a/lib/features/modeling/BpmnFactory.js +++ b/lib/features/modeling/BpmnFactory.js @@ -13,8 +13,8 @@ import { } from '../../util/ModelUtil'; /** - * @typedef {import('../../BaseModeler').Moddle} Moddle - * @typedef {import('../../BaseViewer').ModdleElement} ModdleElement + * @typedef {import('../../model/Types').Moddle} Moddle + * @typedef {import('../../model/Types').ModdleElement} ModdleElement * * @typedef {import('diagram-js/lib/util/Types').Point} Point */ diff --git a/lib/features/modeling/BpmnLayouter.js b/lib/features/modeling/BpmnLayouter.js index 16da8b4db5..2f547ac96f 100644 --- a/lib/features/modeling/BpmnLayouter.js +++ b/lib/features/modeling/BpmnLayouter.js @@ -25,8 +25,10 @@ import { is } from '../../util/ModelUtil'; /** * @typedef {import('diagram-js/lib/util/Types').Point} Point * - * @typedef {import('./ElementFactory').BpmnConnection} BpmnConnection - * @typedef {import('./ElementFactory').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnConnection} BpmnConnection + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * + * @typedef {import('diagram-js/lib/layout/BaseLayouter').LayoutConnectionHints} LayoutConnectionHints * * @typedef { { * source?: BpmnElement; @@ -34,7 +36,7 @@ import { is } from '../../util/ModelUtil'; * waypoints?: Point[]; * connectionStart?: Point; * connectionEnd?: Point; - * } } LayoutConnectionHints + * } & LayoutConnectionHints } BpmnLayoutConnectionHints */ var ATTACH_ORIENTATION_PADDING = -10, @@ -66,7 +68,7 @@ inherits(BpmnLayouter, BaseLayouter); * Returns waypoints of laid out connection. * * @param {BpmnConnection} connection - * @param {LayoutConnectionHints} [hints] + * @param {BpmnLayoutConnectionHints} [hints] * * @return {Point[]} */ diff --git a/lib/features/modeling/BpmnUpdater.js b/lib/features/modeling/BpmnUpdater.js index dc0a488e00..87d61187af 100644 --- a/lib/features/modeling/BpmnUpdater.js +++ b/lib/features/modeling/BpmnUpdater.js @@ -30,12 +30,11 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; * @typedef {import('diagram-js/lib/layout/CroppingConnectionDocking').default} CroppingConnectionDocking * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate * - * @typedef {import('../../BaseViewer').ModdleElement} ModdleElement - * - * @typedef {import('./ElementFactory').BpmnConnection} BpmnConnection - * @typedef {import('./ElementFactory').BpmnElement} BpmnElement - * @typedef {import('./ElementFactory').BpmnShape} BpmnShape - * @typedef {import('./ElementFactory').BpmnParent} BpmnParent + * @typedef {import('../../model/Types').BpmnConnection} BpmnConnection + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').BpmnParent} BpmnParent + * @typedef {import('../../model/Types').ModdleElement} ModdleElement */ /** diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index 1fcab141fa..5d6866e2e8 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -33,45 +33,20 @@ import { } from '../../util/CompatibilityUtil'; /** - * @typedef {import('diagram-js/lib/model').Element} Element - * @typedef {import('diagram-js/lib/model').Connection} Connection - * @typedef {import('diagram-js/lib/model').Label} Label - * @typedef {import('diagram-js/lib/model').Root} Root - * @typedef {import('diagram-js/lib/model').Shape} Shape - * * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate * * @typedef {import('diagram-js/lib/util/Types').Dimensions} Dimensions * * @typedef {import('./BpmnFactory').default} BpmnFactory * - * @typedef {import('../../BaseModeler').Moddle} Moddle - * @typedef {import('../../BaseViewer').ModdleElement} ModdleElement - */ - -/** - * @typedef { { - * businessObject: any; - * di: any; - * type: string; - * } & Element } BpmnElement - * - * @typedef { { - * associationDirection: 'None' | 'One' | 'Both'; - * cancelActivity: boolean; - * eventDefinitionType: string; - * isExpanded: boolean; - * isForCompensation: boolean; - * isInterrupting: boolean; - * processRef: ModdleElement; - * triggeredByEvent: boolean; - * } } BpmnAttributes - * - * @typedef {Connection & BpmnElement} BpmnConnection - * @typedef {Label & BpmnElement} BpmnLabel - * @typedef {Root & BpmnElement} BpmnRoot - * @typedef {Shape & BpmnElement} BpmnShape - * @typedef {BpmnRoot | BpmnShape} BpmnParent + * @typedef {import('../../model/Types').BpmnAttributes} BpmnAttributes + * @typedef {import('../../model/Types').BpmnConnection} BpmnConnection + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnLabel} BpmnLabel + * @typedef {import('../../model/Types').BpmnRoot} BpmnRoot + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').Moddle} Moddle + * @typedef {import('../../model/Types').ModdleElement} ModdleElement */ /** diff --git a/lib/model/Types.ts b/lib/model/Types.ts new file mode 100644 index 0000000000..b3a7c59e19 --- /dev/null +++ b/lib/model/Types.ts @@ -0,0 +1,39 @@ +import { + Connection, + Label, + Root, + Shape +} from "diagram-js/lib/model"; + +export type Moddle = any; + +export type ModdleElement = any; + +export type ModdleExtension = {}; + +export type BpmnAttributes = { + associationDirection: 'None' | 'One' | 'Both'; + cancelActivity: boolean; + eventDefinitionType: string; + isExpanded: boolean; + isForCompensation: boolean; + isInterrupting: boolean; + processRef: ModdleElement; + triggeredByEvent: boolean; +}; + +export type BpmnElement = { + businessObject: any; + di: any; + type: string; +}; + +export type BpmnConnection = Connection & BpmnElement; + +export type BpmnLabel = Label & BpmnElement; + +export type BpmnRoot = Root & BpmnElement; + +export type BpmnShape = Shape & BpmnElement; + +export type BpmnParent = BpmnRoot | BpmnShape; \ No newline at end of file From adea40e78d2a0e1d98e6c6661d33f54030f4061d Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 6 Apr 2023 09:09:26 +0200 Subject: [PATCH 352/989] deps: add `ts-expect` --- package-lock.json | 13 +++++++++++++ package.json | 1 + 2 files changed, 14 insertions(+) diff --git a/package-lock.json b/package-lock.json index 385e6385b7..191cdcb5c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,6 +62,7 @@ "rollup-plugin-license": "^3.0.0", "sinon": "^15.0.0", "sinon-chai": "^3.7.0", + "ts-expect": "^1.3.0", "typescript": "^5.0.0", "webpack": "^5.74.0" } @@ -15446,6 +15447,12 @@ "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/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -28511,6 +28518,12 @@ "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", "dev": true }, + "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 + }, "tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", diff --git a/package.json b/package.json index c15f05cae3..c21cee8886 100644 --- a/package.json +++ b/package.json @@ -100,6 +100,7 @@ "rollup-plugin-license": "^3.0.0", "sinon": "^15.0.0", "sinon-chai": "^3.7.0", + "ts-expect": "^1.3.0", "typescript": "^5.0.0", "webpack": "^5.74.0" }, From bd1fa49de0260d52bffbe6fb4cddf46653b77ea5 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 6 Apr 2023 09:09:40 +0200 Subject: [PATCH 353/989] fix(modeling): fix `Modeling` types --- lib/features/modeling/Modeling.js | 54 ++++++++++++-------- lib/features/modeling/Modeling.test.ts | 68 ++++++++++++++++++++------ lib/model/Types.ts | 3 +- lib/util/ModelUtil.js | 14 +++--- 4 files changed, 97 insertions(+), 42 deletions(-) diff --git a/lib/features/modeling/Modeling.js b/lib/features/modeling/Modeling.js index 35d9fc616f..b9d4b4f6f2 100644 --- a/lib/features/modeling/Modeling.js +++ b/lib/features/modeling/Modeling.js @@ -20,22 +20,29 @@ import UpdateLabelHandler from '../label-editing/cmd/UpdateLabelHandler'; * @typedef {import('./ElementFactory').default} ElementFactory * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus * - * @typedef {import('diagram-js/lib/model').Element} Element - * @typedef {import('diagram-js/lib/model').Root} Root - * @typedef {import('diagram-js/lib/model').Shape} Shape + * @typedef {import('diagram-js/lib/features/modeling/Modeling').ModelingHints} ModelingHints * - * @typedef {import('diagram-js/lib/util/Types').Rect} Rect - * - * @typedef {import('../../BaseViewer').ModdleElement} ModdleElement + * @typedef {import('../../model/Types').BpmnConnection} BpmnConnection + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnLabel} BpmnLabel + * @typedef {import('../../model/Types').BpmnRoot} BpmnRoot + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').ModdleElement} ModdleElement * - * @typedef {import('./Modeling').UpdateLabelHints} UpdateLabelHints + * @typedef {import('diagram-js/lib/util/Types').Rect} Rect * * @typedef {import('../../util/Types').Colors} Colors + * + * @typedef { { + * removeShape?: boolean; + * } } UpdateLabelHints */ /** * The BPMN 2.0 modeling entry point. * + * @extends {BaseModeling} + * * @param {EventBus} eventBus * @param {ElementFactory} elementFactory * @param {CommandStack} commandStack @@ -83,7 +90,7 @@ Modeling.prototype.getHandlers = function() { /** * Update an element's label. * - * @param {Element} element The element. + * @param {BpmnElement} element The element. * @param {string} newLabel The new label. * @param {Rect} [newBounds] The optional bounds of the label. * @param {UpdateLabelHints} [hints] The optional hints. @@ -97,7 +104,14 @@ Modeling.prototype.updateLabel = function(element, newLabel, newBounds, hints) { }); }; - +/** + * @param {BpmnElement} source + * @param {BpmnElement} target + * @param {Partial} attrs + * @param {ModelingHints} [hints] + * + * @returns {BpmnConnection} + */ Modeling.prototype.connect = function(source, target, attrs, hints) { var bpmnRules = this._bpmnRules; @@ -116,7 +130,7 @@ Modeling.prototype.connect = function(source, target, attrs, hints) { /** * Update a model element's properties. * - * @param {Element} element The element. + * @param {BpmnElement} element The element. * @param {ModdleElement} moddleElement The model element. * @param {Object} properties The updated properties. */ @@ -131,7 +145,7 @@ Modeling.prototype.updateModdleProperties = function(element, moddleElement, pro /** * Update an element's properties. * - * @param {Element} element The element. + * @param {BpmnElement} element The element. * @param {Object} properties The updated properties. */ Modeling.prototype.updateProperties = function(element, properties) { @@ -144,7 +158,7 @@ Modeling.prototype.updateProperties = function(element, properties) { /** * Resize a lane. * - * @param {Shape} laneShape The lane. + * @param {BpmnShape} laneShape The lane. * @param {Rect} newBounds The new bounds of the lane. * @param {boolean} [balanced] Wether to resize neighboring lanes. */ @@ -159,10 +173,10 @@ Modeling.prototype.resizeLane = function(laneShape, newBounds, balanced) { /** * Add a lane. * - * @param {Shape} targetLaneShape The shape to add the lane to. + * @param {BpmnShape} targetLaneShape The shape to add the lane to. * @param {string} location The location. * - * @return {Shape} The added lane. + * @return {BpmnShape} The added lane. */ Modeling.prototype.addLane = function(targetLaneShape, location) { var context = { @@ -178,7 +192,7 @@ Modeling.prototype.addLane = function(targetLaneShape, location) { /** * Split a lane. * - * @param {Shape} targetLane The lane to split. + * @param {BpmnShape} targetLane The lane to split. * @param {number} count The number of lanes to split the lane into. Must not * exceed the number of existing lanes. */ @@ -192,7 +206,7 @@ Modeling.prototype.splitLane = function(targetLane, count) { /** * Turn a process into a collaboration. * - * @return {Root} The root of the collaboration. + * @return {BpmnRoot} The root of the collaboration. */ Modeling.prototype.makeCollaboration = function() { @@ -212,7 +226,7 @@ Modeling.prototype.makeCollaboration = function() { /** * Transform a collaboration into a process. * - * @return {Root} The root of the process. + * @return {BpmnRoot} The root of the process. */ Modeling.prototype.makeProcess = function() { @@ -230,8 +244,8 @@ Modeling.prototype.makeProcess = function() { /** * Update the referenced lanes of each flow node. * - * @param {Shape[]} flowNodeShapes The flow nodes to update. - * @param {Shape[]} laneShapes The lanes. + * @param {BpmnShape[]} flowNodeShapes The flow nodes to update. + * @param {BpmnShape[]} laneShapes The lanes. */ Modeling.prototype.updateLaneRefs = function(flowNodeShapes, laneShapes) { @@ -271,7 +285,7 @@ Modeling.prototype.unclaimId = function(id, moddleElement) { /** * Set the color(s) of one or many elements. * - * @param {Base[]} elements The elements to set the color(s) for. + * @param {BpmnElement[]} elements The elements to set the color(s) for. * @param {Colors} colors The color(s) to set. */ Modeling.prototype.setColor = function(elements, colors) { diff --git a/lib/features/modeling/Modeling.test.ts b/lib/features/modeling/Modeling.test.ts index c5401d7a95..ac5ae79b92 100644 --- a/lib/features/modeling/Modeling.test.ts +++ b/lib/features/modeling/Modeling.test.ts @@ -1,39 +1,55 @@ +import { expectType } from 'ts-expect'; + import Modeler from '../../Modeler'; +import { + BpmnConnection, + BpmnElement, + BpmnLabel, + BpmnShape +} from '../../model/Types'; + import ElementFactory from './ElementFactory'; import Modeling from './Modeling'; +import { getBusinessObject } from '../../util/ModelUtil'; + const modeler = new Modeler(); const elementFactory = modeler.get('elementFactory'); -const connection = elementFactory.create('connection', { type: 'bpmn:SequenceFlow' }), - root = elementFactory.create('root', { type: 'bpmn:Process' }), - shape = elementFactory.create('shape', { type: 'bpmn:Task' }); +const sequenceFlow = elementFactory.create('connection', { type: 'bpmn:SequenceFlow' }), + process = elementFactory.create('root', { type: 'bpmn:Process' }), + subProcess = elementFactory.create('shape', { type: 'bpmn:SubProcess' }), + task = elementFactory.create('shape', { type: 'bpmn:Task' }); const modeling = modeler.get('modeling'); -modeling.updateLabel(shape, 'foo'); +modeling.updateLabel(task, 'foo'); -modeling.updateLabel(shape, 'foo', { +modeling.updateLabel(task, 'foo', { x: 100, y: 100, width: 100, height: 100 }); -modeling.updateLabel(shape, 'foo', { +modeling.updateLabel(task, 'foo', { x: 100, y: 100, width: 100, height: 100 }, { removeShape: true }); -modeling.updateModdleProperties(shape, { type: 'bpmn:ExtensionElements' }, { +modeling.connect(subProcess, task, sequenceFlow); + +modeling.connect(subProcess, task, sequenceFlow, { foo: 'bar' }); + +modeling.updateModdleProperties(task, { type: 'bpmn:ExtensionElements' }, { values: [] }); -modeling.updateProperties(shape, { +modeling.updateProperties(task, { name: 'foo' }); @@ -64,14 +80,38 @@ modeling.makeCollaboration(); modeling.makeProcess(); -modeling.updateLaneRefs([ shape ], [ lane ]); +modeling.updateLaneRefs([ task ], [ lane ]); + +modeling.claimId('foo', task.businessObject); + +modeling.unclaimId('foo', task.businessObject); + +modeling.setColor([ task ], { fill: 'red', stroke: 'green' }); + +modeling.setColor([ task ], { fill: 'red' }); + +modeling.setColor([ task ], { stroke: 'green' }); + +/** + * Integration + */ + +expectType(modeling.createConnection(subProcess, task, sequenceFlow, process)); + +expectType(modeling.createLabel(task, { x: 100, y: 100 }, { + businessObject: getBusinessObject(task) +})); -modeling.claimId('foo', shape.businessObject); +expectType(modeling.createShape(task, { x: 100, y: 100 }, process)); -modeling.unclaimId('foo', shape.businessObject); +expectType(modeling.createElements([ + subProcess, + task, + sequenceFlow +], { x: 100, y: 100 }, process)); -modeling.setColor([ shape ], { fill: 'red', stroke: 'green' }); +modeling.moveShape(task, { x: 100, y: 100 }); -modeling.setColor([ shape ], { fill: 'red' }); +modeling.moveConnection(sequenceFlow, { x: 100, y: 100 }); -modeling.setColor([ shape ], { stroke: 'green' }); \ No newline at end of file +modeling.moveElements([ subProcess, task ], { x: 100, y: 100 }); \ No newline at end of file diff --git a/lib/model/Types.ts b/lib/model/Types.ts index b3a7c59e19..2a536927ef 100644 --- a/lib/model/Types.ts +++ b/lib/model/Types.ts @@ -1,5 +1,6 @@ import { Connection, + Element, Label, Root, Shape @@ -26,7 +27,7 @@ export type BpmnElement = { businessObject: any; di: any; type: string; -}; +} & Element; export type BpmnConnection = Connection & BpmnElement; diff --git a/lib/util/ModelUtil.js b/lib/util/ModelUtil.js index 9b62f14101..df2dadb1ed 100644 --- a/lib/util/ModelUtil.js +++ b/lib/util/ModelUtil.js @@ -2,15 +2,15 @@ import { some } from 'min-dash'; - /** - * @typedef { import('../model').DiagramElement } DiagramElement + * @typedef { import('../model/Types').BpmnElement } BpmnElement + * @typedef { import('../model/Types').ModdleElement } ModdleElement */ /** * Is an element of the given BPMN type? * - * @param {DiagramElement|ModdleElement} element + * @param {BpmnElement|ModdleElement} element * @param {string} type * * @return {boolean} @@ -25,8 +25,8 @@ export function is(element, type) { /** * Return true if element has any of the given types. * - * @param {DiagramElement} element - * @param {Array} types + * @param {BpmnElement|ModdleElement} element + * @param {string[]} types * * @return {boolean} */ @@ -39,7 +39,7 @@ export function isAny(element, types) { /** * Return the business object for a given element. * - * @param {DiagramElement|ModdleElement} element + * @param {BpmnElement|ModdleElement} element * * @return {ModdleElement} */ @@ -50,7 +50,7 @@ export function getBusinessObject(element) { /** * Return the di object for a given element. * - * @param {DiagramElement} element + * @param {BpmnElement} element * * @return {ModdleElement} */ From ff5a46543432496fbfc3269b75c527be66113ead Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 6 Apr 2023 09:27:41 +0200 Subject: [PATCH 354/989] fix(LaneUtil): fix JSDoc --- lib/features/modeling/util/LaneUtil.js | 35 ++++++++++++++++---------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/lib/features/modeling/util/LaneUtil.js b/lib/features/modeling/util/LaneUtil.js index 3223d3b47e..b852d3937d 100644 --- a/lib/features/modeling/util/LaneUtil.js +++ b/lib/features/modeling/util/LaneUtil.js @@ -13,6 +13,12 @@ import { resizeTRBL } from 'diagram-js/lib/features/resize/ResizeUtil'; +/** + * @typedef {import('../../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/util/Types').Rect} Rect + */ + var abs = Math.abs; @@ -31,12 +37,12 @@ export var LANE_INDENTATION = 30; /** - * Collect all lane shapes in the given paren + * Return all lanes that are children of the given shape. * - * @param {djs.model.Shape} shape - * @param {Array} [collectedShapes] + * @param {BpmnShape} shape + * @param {BpmnShape[]} [collectedShapes] * - * @return {Array} + * @return {BpmnShape[]} */ export function collectLanes(shape, collectedShapes) { @@ -55,11 +61,11 @@ export function collectLanes(shape, collectedShapes) { /** - * Return the lane children of the given element. + * Return all lanes that are direct children of the given shape. * - * @param {djs.model.Shape} shape + * @param {BpmnShape} shape * - * @return {Array} + * @return {BpmnShape[]} */ export function getChildLanes(shape) { return shape.children.filter(function(c) { @@ -69,11 +75,11 @@ export function getChildLanes(shape) { /** - * Return the root element containing the given lane shape + * Return the parent shape of the given lane. * - * @param {djs.model.Shape} shape + * @param {BpmnShape} shape * - * @return {djs.model.Shape} + * @return {BpmnShape} */ export function getLanesRoot(shape) { return getParent(shape, LANE_PARENTS) || shape; @@ -85,10 +91,13 @@ export function getLanesRoot(shape) { * adjacent to the given shape, assuming it will be * resized to the given new bounds. * - * @param {djs.model.Shape} shape - * @param {Bounds} newBounds + * @param {BpmnShape} shape + * @param {Rect} newBounds * - * @return {Array} + * @return { { + * shape: BpmnShape; + * newBounds: Rect; + * }[] } */ export function computeLanesResize(shape, newBounds) { From 0676974d86e752ced84ddb968026c07da221fd09 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 6 Apr 2023 09:30:13 +0200 Subject: [PATCH 355/989] fix(ModelingUtil): fix JSDoc --- lib/features/modeling/util/ModelingUtil.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/features/modeling/util/ModelingUtil.js b/lib/features/modeling/util/ModelingUtil.js index 98875d086b..aaeed12d8a 100644 --- a/lib/features/modeling/util/ModelingUtil.js +++ b/lib/features/modeling/util/ModelingUtil.js @@ -1,18 +1,24 @@ +import { isString } from 'min-dash'; + export { is, isAny } from '../../../util/ModelUtil'; import { isAny } from '../../../util/ModelUtil'; +/** + * @typedef {import('../../../model/Types').BpmnElement} BpmnElement + */ + /** * Return the parent of the element with any of the given types. * - * @param {djs.model.Base} element - * @param {string|Array} anyType + * @param {BpmnElement} element + * @param {string|string[]} anyType * - * @return {djs.model.Base} + * @return {BpmnElement|null} */ export function getParent(element, anyType) { - if (typeof anyType === 'string') { + if (isString(anyType)) { anyType = [ anyType ]; } From 716686879cb105083b803ca63a8e65491139d1a2 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 6 Apr 2023 12:00:36 +0200 Subject: [PATCH 356/989] fix(modeling): fix command handler JSDocs --- lib/features/modeling/cmd/AddLaneHandler.js | 8 +++ lib/features/modeling/cmd/IdClaimHandler.js | 11 ++++ .../modeling/cmd/ResizeLaneHandler.js | 21 ++++++-- lib/features/modeling/cmd/SetColorHandler.js | 37 ++++++++----- lib/features/modeling/cmd/SplitLaneHandler.js | 9 ++++ .../modeling/cmd/UpdateCanvasRootHandler.js | 14 ++++- .../modeling/cmd/UpdateFlowNodeRefsHandler.js | 29 +++++++++-- .../cmd/UpdateModdlePropertiesHandler.js | 20 +++++-- .../modeling/cmd/UpdatePropertiesHandler.js | 52 ++++++++++++++----- .../cmd/UpdateSemanticParentHandler.js | 11 ++++ 10 files changed, 174 insertions(+), 38 deletions(-) diff --git a/lib/features/modeling/cmd/AddLaneHandler.js b/lib/features/modeling/cmd/AddLaneHandler.js index bc9a6836b7..24bc4a45d1 100644 --- a/lib/features/modeling/cmd/AddLaneHandler.js +++ b/lib/features/modeling/cmd/AddLaneHandler.js @@ -12,11 +12,19 @@ import { LANE_INDENTATION } from '../util/LaneUtil'; +/** + * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler + * + * @typedef {import('../Modeling').default} Modeling + * @typedef {import('../../space-tool/BpmnSpaceTool').default} SpaceTool + */ /** * A handler that allows us to add a new lane * above or below an existing one. * + * @implements {CommandHandler} + * * @param {Modeling} modeling * @param {SpaceTool} spaceTool */ diff --git a/lib/features/modeling/cmd/IdClaimHandler.js b/lib/features/modeling/cmd/IdClaimHandler.js index d8bf3c8a2e..c4280ef01c 100644 --- a/lib/features/modeling/cmd/IdClaimHandler.js +++ b/lib/features/modeling/cmd/IdClaimHandler.js @@ -1,3 +1,14 @@ +/** + * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler + * + * @typedef {import('../../../model/Types').Moddle} Moddle + */ + +/** + * @implements {CommandHandler} + * + * @param {Moddle} moddle + */ export default function IdClaimHandler(moddle) { this._moddle = moddle; } diff --git a/lib/features/modeling/cmd/ResizeLaneHandler.js b/lib/features/modeling/cmd/ResizeLaneHandler.js index 3e7ea09e14..4587e9635f 100644 --- a/lib/features/modeling/cmd/ResizeLaneHandler.js +++ b/lib/features/modeling/cmd/ResizeLaneHandler.js @@ -17,11 +17,24 @@ import { substractTRBL } from 'diagram-js/lib/features/resize/ResizeUtil'; +/** + * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler + * + * @typedef {import('../Modeling').default} Modeling + * @typedef {import('../../space-tool/BpmnSpaceTool').default} SpaceTool + * + * @typedef {import('../../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/util/Types').Rect} Rect + */ /** * A handler that resizes a lane. * + * @implements {CommandHandler} + * * @param {Modeling} modeling + * @param {SpaceTool} spaceTool */ export default function ResizeLaneHandler(modeling, spaceTool) { this._modeling = modeling; @@ -51,8 +64,8 @@ ResizeLaneHandler.prototype.preExecute = function(context) { /** * Resize balanced, adjusting next / previous lane sizes. * - * @param {djs.model.Shape} shape - * @param {Bounds} newBounds + * @param {BpmnShape} shape + * @param {Rect} newBounds */ ResizeLaneHandler.prototype.resizeBalanced = function(shape, newBounds) { @@ -73,8 +86,8 @@ ResizeLaneHandler.prototype.resizeBalanced = function(shape, newBounds) { /** * Resize, making actual space and moving below / above elements. * - * @param {djs.model.Shape} shape - * @param {Bounds} newBounds + * @param {BpmnShape} shape + * @param {Rect} newBounds */ ResizeLaneHandler.prototype.resizeSpace = function(shape, newBounds) { var spaceTool = this._spaceTool; diff --git a/lib/features/modeling/cmd/SetColorHandler.js b/lib/features/modeling/cmd/SetColorHandler.js index 80a3047b57..bc6e278061 100644 --- a/lib/features/modeling/cmd/SetColorHandler.js +++ b/lib/features/modeling/cmd/SetColorHandler.js @@ -14,12 +14,24 @@ import { isLabel } from '../../../util/LabelUtil'; +/** + * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler + * + * @typedef {import('diagram-js/lib/command/CommandStack').default} CommandStack + * + * @typedef {import('../../../model/Types').ModdleElement} ModdleElement + */ + var DEFAULT_COLORS = { fill: undefined, stroke: undefined }; - +/** + * @implements {CommandHandler} + * + * @param {CommandStack} commandStack + */ export default function SetColorHandler(commandStack) { this._commandStack = commandStack; @@ -102,22 +114,22 @@ SetColorHandler.prototype.postExecute = function(context) { }; /** - * Convert color from rgb(a)/hsl to hex. Returns `null` for unknown color names and for colors - * with alpha less than 1.0. This depends on `` serialization of the `context.fillStyle`. + * Convert color from rgb(a)/hsl to hex. Returns `null` for unknown color names + * and for colors with alpha less than 1.0. This depends on `` + * serialization of the `context.fillStyle`. * Cf. https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fillstyle * * @example - * ```js - * var color = 'fuchsia'; - * console.log(colorToHex(color)); - * // "#ff00ff" - * color = 'rgba(1,2,3,0.4)'; - * console.log(colorToHex(color)); - * // null + * + * ```javascript + * colorToHex('fuchsia'); // "#ff00ff" + * + * colorToHex('rgba(1, 2, 3, 0.4)'); // null * ``` * * @param {string} color - * @returns {string|null} + * + * @return {string|null} */ function colorToHex(color) { var context = document.createElement('canvas').getContext('2d'); @@ -138,7 +150,8 @@ function isConnection(element) { /** * Add legacy properties if required. - * @param {{ 'border-color': string?, 'background-color': string? }} di + * + * @param {ModdleElement} di */ function ensureLegacySupport(di) { if ('border-color' in di) { diff --git a/lib/features/modeling/cmd/SplitLaneHandler.js b/lib/features/modeling/cmd/SplitLaneHandler.js index aafa55c36d..165a45ecd3 100644 --- a/lib/features/modeling/cmd/SplitLaneHandler.js +++ b/lib/features/modeling/cmd/SplitLaneHandler.js @@ -3,12 +3,21 @@ import { LANE_INDENTATION } from '../util/LaneUtil'; +/** + * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler + * + * @typedef {import('../Modeling').default} Modeling + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + */ /** * A handler that splits a lane into a number of sub-lanes, * creating new sub lanes, if necessary. * + * @implements {CommandHandler} + * * @param {Modeling} modeling + * @param {Translate} translate */ export default function SplitLaneHandler(modeling, translate) { this._modeling = modeling; diff --git a/lib/features/modeling/cmd/UpdateCanvasRootHandler.js b/lib/features/modeling/cmd/UpdateCanvasRootHandler.js index 70aced78b0..f7b62e0852 100644 --- a/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +++ b/lib/features/modeling/cmd/UpdateCanvasRootHandler.js @@ -5,7 +5,19 @@ import { import { getDi } from '../../../util/ModelUtil'; - +/** + * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler + * + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('../Modeling').default} Modeling + */ + +/** + * @implements {CommandHandler} + * + * @param {Canvas} canvas + * @param {Modeling} modeling + */ export default function UpdateCanvasRootHandler(canvas, modeling) { this._canvas = canvas; this._modeling = modeling; diff --git a/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js b/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js index efd30d0e9d..ad23fd3ed5 100644 --- a/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +++ b/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js @@ -16,12 +16,24 @@ import { asTRBL } from 'diagram-js/lib/layout/LayoutUtil'; +/** + * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler + * + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * + * @typedef {import('../../../model/Types').BpmnShape} BpmnShape + */ + var FLOW_NODE_REFS_ATTR = 'flowNodeRef', LANES_ATTR = 'lanes'; /** - * A handler that updates lane refs on changed elements + * A handler that updates lane refs on changed elements. + * + * @implements {CommandHandler} + * + * @param {ElementRegistry} elementRegistry */ export default function UpdateFlowNodeRefsHandler(elementRegistry) { this._elementRegistry = elementRegistry; @@ -31,8 +43,17 @@ UpdateFlowNodeRefsHandler.$inject = [ 'elementRegistry' ]; - -UpdateFlowNodeRefsHandler.prototype.computeUpdates = function(flowNodeShapes, laneShapes) { +/** + * @param {BpmnShape} flowNodeShapes + * @param {BpmnShape} laneShapes + * + * @returns { { + * flowNode: BpmnShape; + * add: BpmnShape[]; + * remove: BpmnShape[]; + * }[] } + */ +UpdateFlowNodeRefsHandler.prototype._computeUpdates = function(flowNodeShapes, laneShapes) { var handledNodes = []; @@ -139,7 +160,7 @@ UpdateFlowNodeRefsHandler.prototype.execute = function(context) { var updates = context.updates; if (!updates) { - updates = context.updates = this.computeUpdates(context.flowNodeShapes, context.laneShapes); + updates = context.updates = this._computeUpdates(context.flowNodeShapes, context.laneShapes); } diff --git a/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js b/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js index b543132383..5659bd5dd1 100644 --- a/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js +++ b/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js @@ -9,6 +9,20 @@ import { getBusinessObject } from '../../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler + * + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * + * @typedef {import('../../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../../model/Types').ModdleElement} ModdleElement + */ + +/** + * @implements {CommandHandler} + * + * @param {ElementRegistry} elementRegistry + */ export default function UpdateModdlePropertiesHandler(elementRegistry) { this._elementRegistry = elementRegistry; } @@ -28,7 +42,7 @@ UpdateModdlePropertiesHandler.prototype.execute = function(context) { // TODO(nikku): we need to ensure that ID properties // are properly registered / unregistered via // this._moddle.ids.assigned(id) - var changed = context.changed || this.getVisualReferences(moddleElement).concat(element); + var changed = context.changed || this._getVisualReferences(moddleElement).concat(element); var oldProperties = context.oldProperties || getModdleProperties(moddleElement, keys(properties)); setModdleProperties(moddleElement, properties); @@ -54,9 +68,9 @@ UpdateModdlePropertiesHandler.prototype.revert = function(context) { * * @param {ModdleElement} moddleElement * - * @return {Array} + * @return {BpmnShape[]} */ -UpdateModdlePropertiesHandler.prototype.getVisualReferences = function(moddleElement) { +UpdateModdlePropertiesHandler.prototype._getVisualReferences = function(moddleElement) { var elementRegistry = this._elementRegistry; diff --git a/lib/features/modeling/cmd/UpdatePropertiesHandler.js b/lib/features/modeling/cmd/UpdatePropertiesHandler.js index 437c4d0b46..4d5365b320 100644 --- a/lib/features/modeling/cmd/UpdatePropertiesHandler.js +++ b/lib/features/modeling/cmd/UpdatePropertiesHandler.js @@ -10,6 +10,19 @@ import { getDi } from '../../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler + * @typedef {import('diagram-js/lib/command/CommandStack').CommandContext} CommandContext + * + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * @typedef {import('../../../model/Types').Moddle} Moddle + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + * @typedef {import('../Modeling').default} Modeling + * @typedef {import('../../../draw/TextRenderer').default} TextRenderer + * + * @typedef {import('../../../model/Types').BpmnElement} BpmnElement + */ + var DEFAULT_FLOW = 'default', ID = 'id', DI = 'di'; @@ -27,6 +40,14 @@ var NULL_DIMENSIONS = { * * Use respective diagram-js provided handlers if you would * like to perform automated modeling. + * + * @implements {CommandHandler} + * + * @param {ElementRegistry} elementRegistry + * @param {Moddle} moddle + * @param {Translate} translate + * @param {Modeling} modeling + * @param {TextRenderer} textRenderer */ export default function UpdatePropertiesHandler( elementRegistry, moddle, translate, @@ -51,14 +72,14 @@ UpdatePropertiesHandler.$inject = [ // api ////////////////////// /** - * Updates a BPMN element with a list of new properties + * Update a BPMN element's properties. * - * @param {Object} context - * @param {djs.model.Base} context.element the element to update - * @param {Object} context.properties a list of properties to set on the element's - * businessObject (the BPMN model element) + * @param { { + * element: BpmnElement; + * properties: Record; + * } & CommandContext } context * - * @return {Array} the updated element + * @return {BpmnElement[]} */ UpdatePropertiesHandler.prototype.execute = function(context) { @@ -127,11 +148,15 @@ UpdatePropertiesHandler.prototype.postExecute = function(context) { }; /** - * Reverts the update on a BPMN elements properties. + * Revert updating a BPMN element's properties. * - * @param {Object} context + * @param { { + * element: BpmnElement; + * properties: Record; + * oldProperties: Record; + * } & CommandContext } context * - * @return {djs.model.Base} the updated element + * @return {BpmnElement[]} */ UpdatePropertiesHandler.prototype.revert = function(context) { @@ -220,13 +245,12 @@ function setDiProperties(di, properties) { var referencePropertyNames = [ 'default' ]; /** - * Make sure we unwrap the actual business object - * behind diagram element that may have been - * passed as arguments. + * Make sure we unwrap the actual business object behind diagram element that + * may have been passed as arguments. * - * @param {Object} properties + * @param {Record} properties * - * @return {Object} unwrappedProps + * @return {Record} unwrappedProps */ function unwrapBusinessObjects(properties) { diff --git a/lib/features/modeling/cmd/UpdateSemanticParentHandler.js b/lib/features/modeling/cmd/UpdateSemanticParentHandler.js index fb16fad4fb..4060048371 100644 --- a/lib/features/modeling/cmd/UpdateSemanticParentHandler.js +++ b/lib/features/modeling/cmd/UpdateSemanticParentHandler.js @@ -1,3 +1,14 @@ +/** + * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler + * + * @typedef {import('../BpmnUpdater').default} BpmnUpdater + */ + +/** + * @implements {CommandHandler} + * + * @param {BpmnUpdater} bpmnUpdater + */ export default function UpdateSemanticParentHandler(bpmnUpdater) { this._bpmnUpdater = bpmnUpdater; } From aaea2f8ac5c203fa0040937b3f652a4fea1432b7 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 6 Apr 2023 14:23:13 +0200 Subject: [PATCH 357/989] fix: correctly implement `CommandHandler` --- lib/features/modeling/cmd/IdClaimHandler.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/features/modeling/cmd/IdClaimHandler.js b/lib/features/modeling/cmd/IdClaimHandler.js index c4280ef01c..2e262392c0 100644 --- a/lib/features/modeling/cmd/IdClaimHandler.js +++ b/lib/features/modeling/cmd/IdClaimHandler.js @@ -27,6 +27,8 @@ IdClaimHandler.prototype.execute = function(context) { } else { ids.unclaim(id); } + + return []; }; /** @@ -43,5 +45,7 @@ IdClaimHandler.prototype.revert = function(context) { } else { ids.claim(id, element); } + + return []; }; From ef4e786e5c8041b6e3959f95fdd1001798e047f5 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 6 Apr 2023 14:23:36 +0200 Subject: [PATCH 358/989] chore: build types prepublish --- package.json | 10 ++++++---- tsconfig.json | 6 ++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index c21cee8886..0dc49632f2 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "!lib/**/*.spec.ts" ], "scripts": { - "all": "run-s lint test generate-types test:types 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", @@ -24,11 +24,13 @@ "test": "karma start test/config/karma.unit.js", "distro": "node tasks/build-distro.js", "collect-translations": "cross-env COLLECT_TRANSLATIONS=1 npm test", - "generate-types": "del-cli \"lib/**/*.d.ts\" && npx bio-dts -r index.js lib", + "generate-types": "run-s generate-types:*", + "generate-types:generate": "del-cli \"lib/**/*.d.ts\" && npx bio-dts -r lib", + "generate-types:test": "tsc --noEmit", "test:distro": "node tasks/test-distro.js", - "test:types": "tsc", "postversion": "run-s distro test:distro", - "prepare": "run-s distro" + "prepare": "run-s distro", + "prepublishOnly": "run-s generate-types" }, "repository": { "type": "git", diff --git a/tsconfig.json b/tsconfig.json index e865797116..e17976d18f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,6 @@ { "include": [ + "./lib/**/*.d.ts", "./lib/**/*.spec.ts" - ], - "compilerOptions": { - "noEmit": true - } + ] } \ No newline at end of file From c9e0c6f2ab966127f62886be6a3111307e30e961 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 6 Apr 2023 14:36:52 +0200 Subject: [PATCH 359/989] chore: catch implicit `any`s --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0dc49632f2..c92e42ea71 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "collect-translations": "cross-env COLLECT_TRANSLATIONS=1 npm test", "generate-types": "run-s generate-types:*", "generate-types:generate": "del-cli \"lib/**/*.d.ts\" && npx bio-dts -r lib", - "generate-types:test": "tsc --noEmit", + "generate-types:test": "tsc --noEmit --noImplicitAny", "test:distro": "node tasks/test-distro.js", "postversion": "run-s distro test:distro", "prepare": "run-s distro", From e24c238e74a7d420a1cf159c45824e987c06fe04 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 6 Apr 2023 14:53:31 +0200 Subject: [PATCH 360/989] fix: fix behaviors JSDocs --- .../AdaptiveLabelPositioningBehavior.js | 24 +++++-- .../modeling/behavior/AppendBehavior.js | 11 +-- .../modeling/behavior/AssociationBehavior.js | 10 ++- .../modeling/behavior/AttachEventBehavior.js | 14 +++- .../behavior/BoundaryEventBehavior.js | 9 ++- .../modeling/behavior/CreateBehavior.js | 6 ++ .../behavior/CreateDataObjectBehavior.js | 14 ++-- .../behavior/CreateParticipantBehavior.js | 10 +++ .../behavior/DataInputAssociationBehavior.js | 5 ++ .../modeling/behavior/DataStoreBehavior.js | 13 +++- .../modeling/behavior/DeleteLaneBehavior.js | 12 +++- .../modeling/behavior/DetachEventBehavior.js | 14 +++- .../modeling/behavior/DropOnFlowBehavior.js | 12 +++- .../behavior/EventBasedGatewayBehavior.js | 9 +++ .../modeling/behavior/FixHoverBehavior.js | 6 ++ .../modeling/behavior/GroupBehavior.js | 48 +++++++++---- .../modeling/behavior/ImportDockingFix.js | 3 + .../modeling/behavior/IsHorizontalFix.js | 4 ++ .../modeling/behavior/LabelBehavior.js | 5 ++ .../behavior/LayoutConnectionBehavior.js | 8 ++- .../modeling/behavior/MessageFlowBehavior.js | 8 +++ .../modeling/behavior/ModelingFeedback.js | 11 +++ .../behavior/RemoveElementBehavior.js | 12 +++- .../RemoveEmbeddedLabelBoundsBehavior.js | 8 +++ .../behavior/RemoveParticipantBehavior.js | 9 ++- .../behavior/ReplaceConnectionBehavior.js | 14 +++- .../behavior/ReplaceElementBehaviour.js | 23 +++++-- .../modeling/behavior/ResizeBehavior.js | 14 ++++ .../modeling/behavior/ResizeLaneBehavior.js | 13 +++- .../behavior/RootElementReferenceBehavior.js | 19 ++++++ .../modeling/behavior/SpaceToolBehavior.js | 18 +++-- .../behavior/SubProcessPlaneBehavior.js | 68 ++++++++++++------- .../behavior/SubProcessStartEventBehavior.js | 6 ++ .../ToggleCollapseConnectionBehaviour.js | 15 +++- .../ToggleElementCollapseBehaviour.js | 14 +++- .../modeling/behavior/UnclaimIdBehavior.js | 7 ++ .../behavior/UnsetDefaultFlowBehavior.js | 9 ++- .../behavior/UpdateFlowNodeRefsBehavior.js | 23 ++++--- lib/features/modeling/behavior/index.js | 3 + .../modeling/behavior/util/CategoryUtil.js | 5 ++ .../behavior/util/ConnectionLayoutUtil.js | 4 +- .../modeling/behavior/util/LabelLayoutUtil.js | 41 ++++++----- .../modeling/behavior/util/LayoutUtil.js | 33 ++++++++- .../behavior/util/LineAttachmentUtil.js | 22 ++++-- 44 files changed, 511 insertions(+), 125 deletions(-) diff --git a/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js b/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js index be5245237f..05ecc28ff8 100644 --- a/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js +++ b/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js @@ -16,6 +16,16 @@ import { import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + * + * @typedef {import('../../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/util/Types').DirectionTRBL} DirectionTRBL + */ + var ALIGNMENTS = [ 'top', 'bottom', @@ -171,9 +181,9 @@ AdaptiveLabelPositioningBehavior.$inject = [ /** * Return alignments which are taken by a boundary's host element * - * @param {Shape} element + * @param {BpmnShape} element * - * @return {Array} + * @return {DirectionTRBL[]} */ function getTakenHostAlignments(element) { @@ -202,9 +212,9 @@ function getTakenHostAlignments(element) { /** * Return alignments which are taken by related connections * - * @param {Shape} element + * @param {BpmnElement} element * - * @return {Array} + * @return {DirectionTRBL[]} */ function getTakenConnectionAlignments(element) { @@ -226,11 +236,11 @@ function getTakenConnectionAlignments(element) { /** * Return the optimal label position around an element - * or _undefined_, if none was found. + * or `undefined`, if none was found. * - * @param {Shape} element + * @param {BpmnElement} element * - * @return {string} positioning identifier + * @return {DirectionTRBL|undefined} */ function getOptimalPosition(element) { diff --git a/lib/features/modeling/behavior/AppendBehavior.js b/lib/features/modeling/behavior/AppendBehavior.js index ffafd571eb..99153683b1 100644 --- a/lib/features/modeling/behavior/AppendBehavior.js +++ b/lib/features/modeling/behavior/AppendBehavior.js @@ -4,8 +4,11 @@ import { is } from '../../../util/ModelUtil'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + */ -export default function AppendBehavior(eventBus, elementFactory, bpmnRules) { +export default function AppendBehavior(eventBus) { CommandInterceptor.call(this, eventBus); @@ -21,7 +24,7 @@ export default function AppendBehavior(eventBus, elementFactory, bpmnRules) { if (is(shape, 'bpmn:TextAnnotation')) { context.position = { x: source.x + source.width / 2 + 75, - y: source.y - (50) - shape.height / 2 + y: source.y - 50 - shape.height / 2 }; } else { context.position = { @@ -36,7 +39,5 @@ export default function AppendBehavior(eventBus, elementFactory, bpmnRules) { inherits(AppendBehavior, CommandInterceptor); AppendBehavior.$inject = [ - 'eventBus', - 'elementFactory', - 'bpmnRules' + 'eventBus' ]; \ No newline at end of file diff --git a/lib/features/modeling/behavior/AssociationBehavior.js b/lib/features/modeling/behavior/AssociationBehavior.js index d86c4d2746..b24b9f8998 100644 --- a/lib/features/modeling/behavior/AssociationBehavior.js +++ b/lib/features/modeling/behavior/AssociationBehavior.js @@ -9,7 +9,15 @@ import { forEach } from 'min-dash'; - +/** + * @typedef {import('didi').Injector} Injector + * @typedef {import('../Modeling').default} Modeling + */ + +/** + * @param {Injector} injector + * @param {Modeling} modeling + */ export default function AssociationBehavior(injector, modeling) { injector.invoke(CommandInterceptor, this); diff --git a/lib/features/modeling/behavior/AttachEventBehavior.js b/lib/features/modeling/behavior/AttachEventBehavior.js index f089fbd8a8..a996623480 100644 --- a/lib/features/modeling/behavior/AttachEventBehavior.js +++ b/lib/features/modeling/behavior/AttachEventBehavior.js @@ -8,11 +8,19 @@ import { isAny } from '../util/ModelingUtil'; import { isLabel } from '../../../util/LabelUtil'; +/** + * @typedef {import('../../replace/BpmnReplace').default} BpmnReplace + * @typedef {import('didi').Injector} Injector + */ + var LOW_PRIORITY = 500; /** * Replace intermediate event with boundary event when creating or moving results in attached event. + * + * @param {BpmnReplace} bpmnReplace + * @param {Injector} injector */ export default function AttachEventBehavior(bpmnReplace, injector) { injector.invoke(CommandInterceptor, this); @@ -39,7 +47,7 @@ export default function AttachEventBehavior(bpmnReplace, injector) { }).forEach(function(index) { var host = elements[ index ]; - context.elements[ index ] = self.replaceShape(elements[ index ], host); + context.elements[ index ] = self._replaceShape(elements[ index ], host); }); }, true); @@ -55,7 +63,7 @@ export default function AttachEventBehavior(bpmnReplace, injector) { var shape = shapes[0]; if (shouldReplace(shape, host)) { - context.shapes = [ self.replaceShape(shape, host) ]; + context.shapes = [ self._replaceShape(shape, host) ]; } }, true); } @@ -67,7 +75,7 @@ AttachEventBehavior.$inject = [ inherits(AttachEventBehavior, CommandInterceptor); -AttachEventBehavior.prototype.replaceShape = function(shape, host) { +AttachEventBehavior.prototype._replaceShape = function(shape, host) { var eventDefinition = getEventDefinition(shape); var boundaryEvent = { diff --git a/lib/features/modeling/behavior/BoundaryEventBehavior.js b/lib/features/modeling/behavior/BoundaryEventBehavior.js index 26ef21f46d..72304e1dae 100644 --- a/lib/features/modeling/behavior/BoundaryEventBehavior.js +++ b/lib/features/modeling/behavior/BoundaryEventBehavior.js @@ -9,9 +9,16 @@ import { forEach } from 'min-dash'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + */ /** - * BPMN specific boundary event behavior + * BPMN specific boundary event behavior. + * + * @param {EventBus} eventBus + * @param {Modeling} modeling */ export default function BoundaryEventBehavior(eventBus, modeling) { diff --git a/lib/features/modeling/behavior/CreateBehavior.js b/lib/features/modeling/behavior/CreateBehavior.js index 98aaaed542..712fc034a5 100644 --- a/lib/features/modeling/behavior/CreateBehavior.js +++ b/lib/features/modeling/behavior/CreateBehavior.js @@ -6,7 +6,13 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { getParent } from '../util/ModelingUtil'; +/** + * @typedef {import('didi').Injector} Injector + */ +/** + * @param {Injector} injector + */ export default function CreateBehavior(injector) { injector.invoke(CommandInterceptor, this); diff --git a/lib/features/modeling/behavior/CreateDataObjectBehavior.js b/lib/features/modeling/behavior/CreateDataObjectBehavior.js index b0387f0a67..7e5f8e7af3 100644 --- a/lib/features/modeling/behavior/CreateDataObjectBehavior.js +++ b/lib/features/modeling/behavior/CreateDataObjectBehavior.js @@ -4,11 +4,18 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { is } from '../../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../BpmnFactory').default} BpmnFactory + */ /** - * BPMN specific create data object behavior + * BPMN specific create data object behavior. + * + * @param {EventBus} eventBus + * @param {BpmnFactory} bpmnFactory */ -export default function CreateDataObjectBehavior(eventBus, bpmnFactory, moddle) { +export default function CreateDataObjectBehavior(eventBus, bpmnFactory) { CommandInterceptor.call(this, eventBus); @@ -31,8 +38,7 @@ export default function CreateDataObjectBehavior(eventBus, bpmnFactory, moddle) CreateDataObjectBehavior.$inject = [ 'eventBus', - 'bpmnFactory', - 'moddle' + 'bpmnFactory' ]; inherits(CreateDataObjectBehavior, CommandInterceptor); \ No newline at end of file diff --git a/lib/features/modeling/behavior/CreateParticipantBehavior.js b/lib/features/modeling/behavior/CreateParticipantBehavior.js index 296c4d36bc..396c38596a 100644 --- a/lib/features/modeling/behavior/CreateParticipantBehavior.js +++ b/lib/features/modeling/behavior/CreateParticipantBehavior.js @@ -15,6 +15,12 @@ import { import { asTRBL } from 'diagram-js/lib/layout/LayoutUtil'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + */ + var HORIZONTAL_PARTICIPANT_PADDING = 20, VERTICAL_PARTICIPANT_PADDING = 20; @@ -25,6 +31,10 @@ var HIGH_PRIORITY = 2000; /** * BPMN-specific behavior for creating participants. + * + * @param {Canvas} canvas + * @param {EventBus} eventBus + * @param {Modeling} modeling */ export default function CreateParticipantBehavior(canvas, eventBus, modeling) { CommandInterceptor.call(this, eventBus); diff --git a/lib/features/modeling/behavior/DataInputAssociationBehavior.js b/lib/features/modeling/behavior/DataInputAssociationBehavior.js index f0e6a5d264..499d62af82 100644 --- a/lib/features/modeling/behavior/DataInputAssociationBehavior.js +++ b/lib/features/modeling/behavior/DataInputAssociationBehavior.js @@ -15,6 +15,11 @@ import { is } from '../../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../BpmnFactory').default} BpmnFactory + */ + var TARGET_REF_PLACEHOLDER_NAME = '__targetRef_placeholder'; diff --git a/lib/features/modeling/behavior/DataStoreBehavior.js b/lib/features/modeling/behavior/DataStoreBehavior.js index 5f2af46206..40878c0c2d 100644 --- a/lib/features/modeling/behavior/DataStoreBehavior.js +++ b/lib/features/modeling/behavior/DataStoreBehavior.js @@ -12,9 +12,20 @@ import { isAny } from '../util/ModelingUtil'; import UpdateSemanticParentHandler from '../cmd/UpdateSemanticParentHandler'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/command/CommandStack').default} CommandStack + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + */ /** - * BPMN specific data store behavior + * BPMN specific data store behavior. + * + * @param {Canvas} canvas + * @param {CommandStack} commandStack + * @param {ElementRegistry} elementRegistry + * @param {EventBus} eventBus */ export default function DataStoreBehavior( canvas, commandStack, elementRegistry, diff --git a/lib/features/modeling/behavior/DeleteLaneBehavior.js b/lib/features/modeling/behavior/DeleteLaneBehavior.js index 0e617e4e85..f70c6d2f96 100644 --- a/lib/features/modeling/behavior/DeleteLaneBehavior.js +++ b/lib/features/modeling/behavior/DeleteLaneBehavior.js @@ -12,14 +12,21 @@ import { eachElement } from 'diagram-js/lib/util/Elements'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../../space-tool/BpmnSpaceTool').default} SpaceTool + */ var LOW_PRIORITY = 500; /** - * BPMN specific delete lane behavior + * BPMN specific delete lane behavior. + * + * @param {EventBus} eventBus + * @param {SpaceTool} spaceTool */ -export default function DeleteLaneBehavior(eventBus, modeling, spaceTool) { +export default function DeleteLaneBehavior(eventBus, spaceTool) { CommandInterceptor.call(this, eventBus); @@ -105,7 +112,6 @@ export default function DeleteLaneBehavior(eventBus, modeling, spaceTool) { DeleteLaneBehavior.$inject = [ 'eventBus', - 'modeling', 'spaceTool' ]; diff --git a/lib/features/modeling/behavior/DetachEventBehavior.js b/lib/features/modeling/behavior/DetachEventBehavior.js index b5f4452df5..e57b253e45 100644 --- a/lib/features/modeling/behavior/DetachEventBehavior.js +++ b/lib/features/modeling/behavior/DetachEventBehavior.js @@ -9,11 +9,19 @@ import { import { isLabel } from '../../../util/LabelUtil'; +/** + * @typedef {import('../../replace/BpmnReplace').default} BpmnReplace + * @typedef {import('didi').Injector} Injector + */ + var LOW_PRIORITY = 500; /** * Replace boundary event with intermediate event when creating or moving results in detached event. + * + * @param {BpmnReplace} bpmnReplace + * @param {Injector} injector */ export default function DetachEventBehavior(bpmnReplace, injector) { injector.invoke(CommandInterceptor, this); @@ -32,7 +40,7 @@ export default function DetachEventBehavior(bpmnReplace, injector) { }).map(function(shape) { return elements.indexOf(shape); }).forEach(function(index) { - context.elements[ index ] = self.replaceShape(elements[ index ]); + context.elements[ index ] = self._replaceShape(elements[ index ]); }); }, true); @@ -44,7 +52,7 @@ export default function DetachEventBehavior(bpmnReplace, injector) { var host = shape.host; if (shouldReplace(shape, includes(shapes, host) ? host : newHost)) { - shapes[ index ] = self.replaceShape(shape); + shapes[ index ] = self._replaceShape(shape); } }); }, true); @@ -57,7 +65,7 @@ DetachEventBehavior.$inject = [ inherits(DetachEventBehavior, CommandInterceptor); -DetachEventBehavior.prototype.replaceShape = function(shape) { +DetachEventBehavior.prototype._replaceShape = function(shape) { var eventDefinition = getEventDefinition(shape), intermediateEvent; diff --git a/lib/features/modeling/behavior/DropOnFlowBehavior.js b/lib/features/modeling/behavior/DropOnFlowBehavior.js index fc1dfba595..eb934bbce2 100644 --- a/lib/features/modeling/behavior/DropOnFlowBehavior.js +++ b/lib/features/modeling/behavior/DropOnFlowBehavior.js @@ -15,7 +15,17 @@ import { getApproxIntersection } from 'diagram-js/lib/util/LineIntersection'; - +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../../rules/BpmnRules').default} BpmnRules + * @typedef {import('../../modeling/Modeling').default} Modeling + */ + +/** + * @param {EventBus} eventBus + * @param {BpmnRules} bpmnRules + * @param {Modeling} modeling + */ export default function DropOnFlowBehavior(eventBus, bpmnRules, modeling) { CommandInterceptor.call(this, eventBus); diff --git a/lib/features/modeling/behavior/EventBasedGatewayBehavior.js b/lib/features/modeling/behavior/EventBasedGatewayBehavior.js index 6d8a90a6ca..5d51dbabf4 100644 --- a/lib/features/modeling/behavior/EventBasedGatewayBehavior.js +++ b/lib/features/modeling/behavior/EventBasedGatewayBehavior.js @@ -4,6 +4,15 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { is } from '../../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + */ + +/** + * @param {EventBus} eventBus + * @param {Modeling} modeling + */ export default function EventBasedGatewayBehavior(eventBus, modeling) { CommandInterceptor.call(this, eventBus); diff --git a/lib/features/modeling/behavior/FixHoverBehavior.js b/lib/features/modeling/behavior/FixHoverBehavior.js index a1f6cb7a57..48f55421b0 100644 --- a/lib/features/modeling/behavior/FixHoverBehavior.js +++ b/lib/features/modeling/behavior/FixHoverBehavior.js @@ -4,6 +4,12 @@ import { is } from '../../../util/ModelUtil'; import { isAny } from '../util/ModelingUtil'; +/** + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + */ + var HIGH_PRIORITY = 1500; var HIGHEST_PRIORITY = 2000; diff --git a/lib/features/modeling/behavior/GroupBehavior.js b/lib/features/modeling/behavior/GroupBehavior.js index c0508a7492..b8bb385e48 100644 --- a/lib/features/modeling/behavior/GroupBehavior.js +++ b/lib/features/modeling/behavior/GroupBehavior.js @@ -15,12 +15,32 @@ import { unlinkCategoryValue } from './util/CategoryUtil'; +/** + * @typedef {import('../BpmnFactory').default} BpmnFactory + * @typedef {import('../../../Modeler').default} Modeler + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('didi').Injector} Injector + * @typedef {import('../../copy-paste/ModdleCopy').default} ModdleCopy + * + * @typedef {import('../../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/util/Types').DirectionTRBL} DirectionTRBL + */ var LOWER_PRIORITY = 770; /** - * BPMN specific Group behavior + * BPMN specific group behavior. + * + * @param {BpmnFactory} bpmnFactory + * @param {Modeler} bpmnjs + * @param {ElementRegistry} elementRegistry + * @param {EventBus} eventBus + * @param {Injector} injector + * @param {ModdleCopy} moddleCopy */ export default function GroupBehavior( bpmnFactory, @@ -33,9 +53,9 @@ export default function GroupBehavior( injector.invoke(CommandInterceptor, this); /** - * Returns all group element in the current registry + * Returns all group element in the current registry. * - * @return {Array} a list of group shapes + * @return {BpmnShape[]} */ function getGroupElements() { return elementRegistry.filter(function(e) { @@ -44,12 +64,12 @@ export default function GroupBehavior( } /** - * Returns true if given category is referenced in one of the given elements + * Returns true if given category is referenced in one of the given elements. * - * @param { djs.model.Element[] } elements - * @param { ModdleElement } category + * @param {BpmnElement[]} elements + * @param {ModdleElement} category * - * @return { boolean } + * @return {boolean} */ function isReferencedCategory(elements, category) { return elements.some(function(element) { @@ -62,12 +82,12 @@ export default function GroupBehavior( } /** - * Returns true if given categoryValue is referenced in one of the given elements + * Returns true if given categoryValue is referenced in one of the given elements. * - * @param { djs.model.Element[] } elements - * @param { ModdleElement } categoryValue + * @param {BpmnElement[]} elements + * @param {ModdleElement} categoryValue * - * @return { boolean } + * @return {boolean} */ function isReferencedCategoryValue(elements, categoryValue) { return elements.some(function(element) { @@ -78,7 +98,7 @@ export default function GroupBehavior( } /** - * Remove category value unless it is still referenced + * Remove category value unless it is still referenced. * * @param {ModdleElement} categoryValue * @param {ModdleElement} category @@ -100,10 +120,12 @@ export default function GroupBehavior( } /** - * Add category value + * Add category value. * * @param {ModdleElement} categoryValue * @param {ModdleElement} category + * + * @return {ModdleElement} */ function addCategoryValue(categoryValue, category) { return linkCategoryValue(categoryValue, category, bpmnjs.getDefinitions()); diff --git a/lib/features/modeling/behavior/ImportDockingFix.js b/lib/features/modeling/behavior/ImportDockingFix.js index 1483db0db6..e1801262a2 100644 --- a/lib/features/modeling/behavior/ImportDockingFix.js +++ b/lib/features/modeling/behavior/ImportDockingFix.js @@ -4,6 +4,9 @@ import { import lineIntersect from './util/LineIntersect'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + */ /** * Fix broken dockings after DI imports. diff --git a/lib/features/modeling/behavior/IsHorizontalFix.js b/lib/features/modeling/behavior/IsHorizontalFix.js index 25fcc6519f..68fb5e6b15 100644 --- a/lib/features/modeling/behavior/IsHorizontalFix.js +++ b/lib/features/modeling/behavior/IsHorizontalFix.js @@ -11,6 +11,10 @@ import { isAny } from '../util/ModelingUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + */ + /** * A component that makes sure that each created or updated * Pool and Lane is assigned an isHorizontal property set to true. diff --git a/lib/features/modeling/behavior/LabelBehavior.js b/lib/features/modeling/behavior/LabelBehavior.js index 3c63f8775c..801815c6c6 100644 --- a/lib/features/modeling/behavior/LabelBehavior.js +++ b/lib/features/modeling/behavior/LabelBehavior.js @@ -58,6 +58,11 @@ var NAME_PROPERTY = 'name'; var TEXT_PROPERTY = 'text'; /** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + * @typedef {import('../BpmnFactory').default} BpmnFactory + * @typedef {import('../../../draw/TextRenderer').default} TextRenderer + * * @typedef {import('diagram-js/lib/util/Types').Point} Point * @typedef {import('diagram-js/lib/util/Types').Rect} Rect * diff --git a/lib/features/modeling/behavior/LayoutConnectionBehavior.js b/lib/features/modeling/behavior/LayoutConnectionBehavior.js index 0963fb38f0..87721a9ae2 100644 --- a/lib/features/modeling/behavior/LayoutConnectionBehavior.js +++ b/lib/features/modeling/behavior/LayoutConnectionBehavior.js @@ -8,6 +8,11 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { getConnectionAdjustment as getConnectionAnchorPoint } from './util/ConnectionLayoutUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + */ + /** * A component that makes sure that Associations connected to Connections * are updated together with the Connection. @@ -15,8 +20,7 @@ import { getConnectionAdjustment as getConnectionAnchorPoint } from './util/Conn * @param {EventBus} eventBus * @param {Modeling} modeling */ -export default function LayoutConnectionBehavior( - eventBus, modeling) { +export default function LayoutConnectionBehavior(eventBus, modeling) { CommandInterceptor.call(this, eventBus); diff --git a/lib/features/modeling/behavior/MessageFlowBehavior.js b/lib/features/modeling/behavior/MessageFlowBehavior.js index d797723297..2e7117fabc 100644 --- a/lib/features/modeling/behavior/MessageFlowBehavior.js +++ b/lib/features/modeling/behavior/MessageFlowBehavior.js @@ -13,8 +13,16 @@ import { getResizedTargetAnchor } from 'diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + */ + /** * BPMN-specific message flow behavior. + * + * @param {EventBus} eventBus + * @param {Modeling} modeling */ export default function MessageFlowBehavior(eventBus, modeling) { diff --git a/lib/features/modeling/behavior/ModelingFeedback.js b/lib/features/modeling/behavior/ModelingFeedback.js index 083af51ecb..84d2dcf738 100644 --- a/lib/features/modeling/behavior/ModelingFeedback.js +++ b/lib/features/modeling/behavior/ModelingFeedback.js @@ -1,7 +1,18 @@ import { is } from '../../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/features/tooltips/Tooltips').default} Tooltips + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + */ + var COLLAB_ERR_MSG = 'flow elements must be children of pools/participants'; +/** + * @param {EventBus} eventBus + * @param {Tooltips} tooltips + * @param {Translate} translate + */ export default function ModelingFeedback(eventBus, tooltips, translate) { function showError(position, message, timeout) { diff --git a/lib/features/modeling/behavior/RemoveElementBehavior.js b/lib/features/modeling/behavior/RemoveElementBehavior.js index 0fb06f26a3..94bab0e386 100644 --- a/lib/features/modeling/behavior/RemoveElementBehavior.js +++ b/lib/features/modeling/behavior/RemoveElementBehavior.js @@ -6,7 +6,17 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import lineIntersect from './util/LineIntersect'; - +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../../rules/BpmnRules').default} BpmnRules + * @typedef {import('../Modeling').default} Modeling + */ + +/** + * @param {EventBus} eventBus + * @param {BpmnRules} bpmnRules + * @param {Modeling} modeling + */ export default function RemoveElementBehavior(eventBus, bpmnRules, modeling) { CommandInterceptor.call(this, eventBus); diff --git a/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js b/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js index d91996aee2..d37e0fd456 100644 --- a/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js +++ b/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js @@ -4,9 +4,17 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { getDi } from '../../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + */ + /** * BPMN specific behavior ensuring that bpmndi:Label's dc:Bounds are removed * when shape is resized. + * + * @param {EventBus} eventBus + * @param {Modeling} modeling */ export default function RemoveEmbeddedLabelBoundsBehavior(eventBus, modeling) { CommandInterceptor.call(this, eventBus); diff --git a/lib/features/modeling/behavior/RemoveParticipantBehavior.js b/lib/features/modeling/behavior/RemoveParticipantBehavior.js index 500df2274e..ad23cf959c 100644 --- a/lib/features/modeling/behavior/RemoveParticipantBehavior.js +++ b/lib/features/modeling/behavior/RemoveParticipantBehavior.js @@ -4,9 +4,16 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { is } from '../../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + */ /** - * BPMN specific remove behavior + * BPMN specific remove behavior. + * + * @param {EventBus} eventBus + * @param {Modeling} modeling */ export default function RemoveParticipantBehavior(eventBus, modeling) { diff --git a/lib/features/modeling/behavior/ReplaceConnectionBehavior.js b/lib/features/modeling/behavior/ReplaceConnectionBehavior.js index 99fa22bdb2..4af6dfb0a9 100644 --- a/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +++ b/lib/features/modeling/behavior/ReplaceConnectionBehavior.js @@ -10,7 +10,19 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { is } from '../../../util/ModelUtil'; - +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + * @typedef {import('../../rules/BpmnRules').default} BpmnRules + * @typedef {import('didi').Injector} Injector + */ + +/** + * @param {EventBus} eventBus + * @param {Modeling} modeling + * @param {BpmnRules} bpmnRules + * @param {Injector} injector + */ export default function ReplaceConnectionBehavior(eventBus, modeling, bpmnRules, injector) { CommandInterceptor.call(this, eventBus); diff --git a/lib/features/modeling/behavior/ReplaceElementBehaviour.js b/lib/features/modeling/behavior/ReplaceElementBehaviour.js index 420cb15c60..ede09320d5 100644 --- a/lib/features/modeling/behavior/ReplaceElementBehaviour.js +++ b/lib/features/modeling/behavior/ReplaceElementBehaviour.js @@ -6,9 +6,24 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { isEventSubProcess } from '../../../util/DiUtil'; +/** + * @typedef {import('../../replace/BpmnReplace').default} BpmnReplace + * @typedef {import('../../rules/BpmnRules').default} BpmnRules + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * @typedef {import('didi').Injector} Injector + * @typedef {import('../Modeling').default} Modeling + * @typedef {import('diagram-js/lib/features/selection/Selection').default} Selection + */ /** * BPMN-specific replace behavior. + * + * @param {BpmnReplace} bpmnReplace + * @param {BpmnRules} bpmnRules + * @param {ElementRegistry} elementRegistry + * @param {Injector} injector + * @param {Modeling} modeling + * @param {Selection} selection */ export default function ReplaceElementBehaviour( bpmnReplace, @@ -37,7 +52,7 @@ export default function ReplaceElementBehaviour( }, []); if (elementReplacements.length) { - this.replaceElements(elements, elementReplacements); + this._replaceElements(elements, elementReplacements); } }, this); @@ -64,7 +79,7 @@ export default function ReplaceElementBehaviour( var canReplace = bpmnRules.canReplace(elements, target); if (canReplace) { - this.replaceElements(elements, canReplace.replacements, newHost); + this._replaceElements(elements, canReplace.replacements, newHost); } }, this); @@ -79,7 +94,7 @@ export default function ReplaceElementBehaviour( if (attachers && attachers.length) { canReplace = bpmnRules.canReplace(attachers, newShape); - this.replaceElements(attachers, canReplace.replacements); + this._replaceElements(attachers, canReplace.replacements); } }, this); @@ -97,7 +112,7 @@ export default function ReplaceElementBehaviour( inherits(ReplaceElementBehaviour, CommandInterceptor); -ReplaceElementBehaviour.prototype.replaceElements = function(elements, newElements) { +ReplaceElementBehaviour.prototype._replaceElements = function(elements, newElements) { var elementRegistry = this._elementRegistry, bpmnReplace = this._bpmnReplace, selection = this._selection; diff --git a/lib/features/modeling/behavior/ResizeBehavior.js b/lib/features/modeling/behavior/ResizeBehavior.js index f15cd2807a..20d17acda6 100644 --- a/lib/features/modeling/behavior/ResizeBehavior.js +++ b/lib/features/modeling/behavior/ResizeBehavior.js @@ -16,7 +16,11 @@ var HIGH_PRIORITY = 1500; /** * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus * + * @typedef {import('../../../model/Types').BpmnShape} BpmnShape + * * @typedef {import('diagram-js/lib/util/Types').Dimensions} Dimensions + * @typedef {import('diagram-js/lib/util/Types').Direction} Direction + * @typedef {import('diagram-js/lib/util/Types').RectTRBL} RectTRBL */ /** @@ -104,6 +108,16 @@ var LANE_RIGHT_PADDING = 20, LANE_TOP_PADDING = 20, LANE_BOTTOM_PADDING = 20; +/** + * @param {BpmnShape} laneShape + * @param {Direction} resizeDirection + * @param {boolean} [balanced=false] + * + * @return { { + * min: RectTRBL; + * max: RectTRBL; + * } } + */ export function getParticipantResizeConstraints(laneShape, resizeDirection, balanced) { var lanesRoot = getLanesRoot(laneShape); diff --git a/lib/features/modeling/behavior/ResizeLaneBehavior.js b/lib/features/modeling/behavior/ResizeLaneBehavior.js index c8981a92da..c39dcdd775 100644 --- a/lib/features/modeling/behavior/ResizeLaneBehavior.js +++ b/lib/features/modeling/behavior/ResizeLaneBehavior.js @@ -8,13 +8,20 @@ import { hasPrimaryModifier } from 'diagram-js/lib/util/Mouse'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + */ + var SLIGHTLY_HIGHER_PRIORITY = 1001; /** - * Invoke {@link Modeling#resizeLane} instead of - * {@link Modeling#resizeShape} when resizing a Lane - * or Participant shape. + * Invoke {@link Modeling#resizeLane} instead of {@link Modeling#resizeShape} + * when resizing a lane or participant shape. + * + * @param {EventBus} eventBus + * @param {Modeling} modeling */ export default function ResizeLaneBehavior(eventBus, modeling) { diff --git a/lib/features/modeling/behavior/RootElementReferenceBehavior.js b/lib/features/modeling/behavior/RootElementReferenceBehavior.js index cc5625b562..d99c6c22b4 100644 --- a/lib/features/modeling/behavior/RootElementReferenceBehavior.js +++ b/lib/features/modeling/behavior/RootElementReferenceBehavior.js @@ -23,12 +23,31 @@ import { isAny } from '../util/ModelingUtil'; import { hasEventDefinition } from '../../../util/DiUtil'; +/** + * @typedef {import('../../../Modeler').default} Modeler + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('didi').Injector} Injector + * @typedef {import('../../copy-paste/ModdleCopy').default} ModdleCopy + * @typedef {import('../BpmnFactory').default} BpmnFactory + * + * @typedef {import('../../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/util/Types').DirectionTRBL} DirectionTRBL + */ + var LOW_PRIORITY = 500; /** * Add referenced root elements (error, escalation, message, signal) if they don't exist. * Copy referenced root elements on copy & paste. + * + * @param {Modeler} bpmnjs + * @param {EventBus} eventBus + * @param {Injector} injector + * @param {ModdleCopy} moddleCopy + * @param {BpmnFactory} bpmnFactory */ export default function RootElementReferenceBehavior( bpmnjs, eventBus, injector, moddleCopy, bpmnFactory diff --git a/lib/features/modeling/behavior/SpaceToolBehavior.js b/lib/features/modeling/behavior/SpaceToolBehavior.js index dd0995426d..c545edfbfa 100644 --- a/lib/features/modeling/behavior/SpaceToolBehavior.js +++ b/lib/features/modeling/behavior/SpaceToolBehavior.js @@ -14,9 +14,17 @@ import { import { getChildLanes } from '../util/LaneUtil'; -var max = Math.max; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * + * @typedef {import('../../../model/Types').BpmnShape} BpmnShape + */ +var max = Math.max; +/** + * @param {EventBus} eventBus + */ export default function SpaceToolBehavior(eventBus) { eventBus.on('spaceTool.getMinDimensions', function(context) { var shapes = context.shapes, @@ -68,10 +76,10 @@ function isHorizontal(axis) { /** * Get minimum height for participant taking lanes into account. * - * @param {} participant + * @param {BpmnShape} participant * @param {number} start * - * @returns {Object} + * @return {number} */ function getParticipantMinHeight(participant, start) { var lanesMinHeight; @@ -104,8 +112,10 @@ function getLanesMinHeight(participant, resizeStart) { /** * Find nested lane which is currently resized. * - * @param {Array} lanes + * @param {BpmnShape[]} lanes * @param {number} resizeStart + * + * @return {BpmnShape} */ function findResizedLane(lanes, resizeStart) { var i, lane, childLanes; diff --git a/lib/features/modeling/behavior/SubProcessPlaneBehavior.js b/lib/features/modeling/behavior/SubProcessPlaneBehavior.js index 6aa3444632..17ca782578 100644 --- a/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +++ b/lib/features/modeling/behavior/SubProcessPlaneBehavior.js @@ -3,10 +3,15 @@ import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { find } from 'min-dash'; + import { isExpanded } from '../../../util/DiUtil'; + import { getBusinessObject, getDi, is } from '../../../util/ModelUtil'; + import { getMid } from 'diagram-js/lib/layout/LayoutUtil'; + import { getBBox } from 'diagram-js/lib/util/Elements'; + import { getPlaneIdFromShape, getShapeIdFromPlane, @@ -14,6 +19,19 @@ import { toPlaneId } from '../../../util/DrilldownUtil'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + * @typedef {import('../ElementFactory').default} ElementFactory + * @typedef {import('../BpmnFactory').default} BpmnFactory + * @typedef {import('../../../Modeler').default} Modeler + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * + * @typedef {import('../../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../../model/Types').BpmnRoot} BpmnRoot + * @typedef {import('../../../model/Types').ModdleElement} ModdleElement + */ var LOW_PRIORITY = 400; var HIGH_PRIORITY = 600; @@ -27,13 +45,12 @@ var DEFAULT_POSITION = { /** * Creates bpmndi:BPMNPlane elements and canvas planes when collapsed subprocesses are created. * - * * @param {Canvas} canvas * @param {EventBus} eventBus * @param {Modeling} modeling * @param {ElementFactory} elementFactory * @param {BpmnFactory} bpmnFactory - * @param {Bpmnjs} bpmnjs + * @param {Modeler} bpmnjs * @param {ElementRegistry} elementRegistry */ export default function SubProcessPlaneBehavior( @@ -398,8 +415,8 @@ inherits(SubProcessPlaneBehavior, CommandInterceptor); * If the target is a plane, the children are moved to the top left corner. * Otherwise, the center of the target is used. * - * @param {Object|djs.model.Base} source - * @param {Object|djs.model.Base} target + * @param {BpmnRoot} source + * @param {BpmnRoot} target */ SubProcessPlaneBehavior.prototype._moveChildrenToShape = function(source, target) { var modeling = this._modeling; @@ -459,9 +476,10 @@ SubProcessPlaneBehavior.prototype._moveChildrenToShape = function(source, target /** * Sets `hidden` property on all children of the given shape. * - * @param {Array} elements - * @param {Boolean} [hidden] - * @returns {Array} all child elements + * @param {BpmnElement[]} elements + * @param {boolean} [hidden=false] + * + * @return {BpmnElement[]} */ SubProcessPlaneBehavior.prototype._showRecursively = function(elements, hidden) { var self = this; @@ -483,11 +501,12 @@ SubProcessPlaneBehavior.prototype._showRecursively = function(elements, hidden) }; /** -* Adds a given rootElement to the bpmnDi diagrams. -* -* @param {Object} rootElement -* @returns {Object} planeElement -*/ + * Adds a given root element to the BPMNDI diagrams. + * + * @param {BpmnRoot|ModdleElement} planeElement + * + * @returns {BpmnRoot} + */ SubProcessPlaneBehavior.prototype._addDiagram = function(planeElement) { var bpmnjs = this._bpmnjs; var diagrams = bpmnjs.getDefinitions().diagrams; @@ -503,22 +522,24 @@ SubProcessPlaneBehavior.prototype._addDiagram = function(planeElement) { /** -* Creates a new plane element for the given sub process. -* -* @param {Object} bpmnElement -* -* @return {Object} new diagram element -*/ + * Creates a new plane element for the given sub process. + * + * @param {ModdleElement} bpmnElement + * + * @return {BpmnRoot} + */ SubProcessPlaneBehavior.prototype._createNewDiagram = function(bpmnElement) { - var bpmnFactory = this._bpmnFactory; - var elementFactory = this._elementFactory; + var bpmnFactory = this._bpmnFactory, + elementFactory = this._elementFactory; var diPlane = bpmnFactory.create('bpmndi:BPMNPlane', { bpmnElement: bpmnElement }); + var diDiagram = bpmnFactory.create('bpmndi:BPMNDiagram', { plane: diPlane }); + diPlane.$parent = diDiagram; // add a virtual element (not being drawn), @@ -535,10 +556,11 @@ SubProcessPlaneBehavior.prototype._createNewDiagram = function(bpmnElement) { }; /** - * Removes the diagram for a given root element + * Removes the diagram for a given root element. + * + * @param {BpmnRoot} rootElement * - * @param {Object} rootElement - * @returns {Object} removed bpmndi:BPMNDiagram + * @returns {ModdleElement} */ SubProcessPlaneBehavior.prototype._removeDiagram = function(rootElement) { var bpmnjs = this._bpmnjs; diff --git a/lib/features/modeling/behavior/SubProcessStartEventBehavior.js b/lib/features/modeling/behavior/SubProcessStartEventBehavior.js index e4c1720e42..c27a4ba603 100644 --- a/lib/features/modeling/behavior/SubProcessStartEventBehavior.js +++ b/lib/features/modeling/behavior/SubProcessStartEventBehavior.js @@ -3,8 +3,14 @@ import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; import { is } from '../../../util/ModelUtil'; + import { isExpanded } from '../../../util/DiUtil.js'; +/** + * @typedef {import('didi').Injector} Injector + * @typedef {import('../Modeling').default} Modeling + */ + /** * Add start event replacing element with expanded sub process. * diff --git a/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js b/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js index b677617e3c..a1e2d64db8 100644 --- a/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js +++ b/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js @@ -12,7 +12,20 @@ import { selfAndAllChildren } from 'diagram-js/lib/util/Elements'; import { isExpanded } from '../../../util/DiUtil'; - +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + * + * @typedef {import('../../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/util/Types').DirectionTRBL} DirectionTRBL + */ + +/** + * @param {EventBus} eventBus + * @param {Modeling} modeling + */ export default function ToggleCollapseConnectionBehaviour( eventBus, modeling ) { diff --git a/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js b/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js index 55f259fb9b..dc9a792383 100644 --- a/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js +++ b/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js @@ -11,13 +11,21 @@ import { computeChildrenBBox } from 'diagram-js/lib/features/resize/ResizeUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../ElementFactory').default} ElementFactory + * @typedef {import('../Modeling').default} Modeling + */ var LOW_PRIORITY = 500; - +/** + * @param {EventBus} eventBus + * @param {ElementFactory} elementFactory + * @param {Modeling} modeling + */ export default function ToggleElementCollapseBehaviour( - eventBus, elementFactory, modeling, - resize) { + eventBus, elementFactory, modeling) { CommandInterceptor.call(this, eventBus); diff --git a/lib/features/modeling/behavior/UnclaimIdBehavior.js b/lib/features/modeling/behavior/UnclaimIdBehavior.js index ffafb878f5..de085ca10d 100644 --- a/lib/features/modeling/behavior/UnclaimIdBehavior.js +++ b/lib/features/modeling/behavior/UnclaimIdBehavior.js @@ -6,6 +6,13 @@ import { is } from '../../../util/ModelUtil'; import { isExpanded } from '../../../util/DiUtil'; import { isLabel } from '../../../util/LabelUtil'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('didi').Injector} Injector + * @typedef {import('../Modeling').default} Modeling + * + * @typedef {import('../../../model/Types').Moddle} Moddle + */ /** * Unclaims model IDs on element deletion. diff --git a/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js b/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js index 18da9c7b01..e5caf136d4 100644 --- a/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js +++ b/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js @@ -7,11 +7,14 @@ import { is } from '../../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + */ /** - * A behavior that unsets the Default property of - * sequence flow source on element delete, if the - * removed element is the Gateway or Task's default flow. + * A behavior that unsets the Default property of sequence flow source on + * element delete, if the removed element is the Gateway or Task's default flow. * * @param {EventBus} eventBus * @param {Modeling} modeling diff --git a/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js b/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js index 7f9ea5c967..0be34708dd 100644 --- a/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js +++ b/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js @@ -6,28 +6,31 @@ import { is } from '../../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../Modeling').default} Modeling + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + */ + var LOW_PRIORITY = 500, HIGH_PRIORITY = 5000; /** - * BPMN specific delete lane behavior + * BPMN specific delete lane behavior. + * + * @param {EventBus} eventBus + * @param {Modeling} modeling + * @param {Translate} translate */ export default function UpdateFlowNodeRefsBehavior(eventBus, modeling, translate) { CommandInterceptor.call(this, eventBus); /** - * Ok, this is it: - * - * We have to update the Lane#flowNodeRefs _and_ - * FlowNode#lanes with every FlowNode move/resize and - * Lane move/resize. - * - * We want to group that stuff to recompute containments + * Update Lane#flowNodeRefs and FlowNode#lanes with every flow node + * move/resize and lane move/resize. Groups elements to recompute containments * as efficient as possible. - * - * Yea! */ // the update context diff --git a/lib/features/modeling/behavior/index.js b/lib/features/modeling/behavior/index.js index 059c74bace..9caf96610b 100644 --- a/lib/features/modeling/behavior/index.js +++ b/lib/features/modeling/behavior/index.js @@ -37,6 +37,9 @@ import UnclaimIdBehavior from './UnclaimIdBehavior'; import UnsetDefaultFlowBehavior from './UnsetDefaultFlowBehavior'; import UpdateFlowNodeRefsBehavior from './UpdateFlowNodeRefsBehavior'; +/** + * @type { import('didi').ModuleDeclaration } + */ export default { __init__: [ 'adaptiveLabelPositioningBehavior', diff --git a/lib/features/modeling/behavior/util/CategoryUtil.js b/lib/features/modeling/behavior/util/CategoryUtil.js index e316ae691c..b8127a67aa 100644 --- a/lib/features/modeling/behavior/util/CategoryUtil.js +++ b/lib/features/modeling/behavior/util/CategoryUtil.js @@ -3,6 +3,11 @@ import { remove as collectionRemove } from 'diagram-js/lib/util/Collections'; +/** + * @typedef {import('../../BpmnFactory').default} BpmnFactory + * + * @typedef {import('../../../model/Types').ModdleElement} ModdleElement + */ /** * Creates a new bpmn:CategoryValue inside a new bpmn:Category diff --git a/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js b/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js index 479c05888c..90344dc37f 100644 --- a/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js +++ b/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js @@ -2,6 +2,8 @@ import { getAnchorPointAdjustment } from './LayoutUtil'; /** * @typedef {import('diagram-js/lib/util/Types').Point} Point + * + * @typedef {import('./LayoutUtil').FindNewLintStartIndexHints} FindNewLintStartIndexHints */ /** @@ -10,7 +12,7 @@ import { getAnchorPointAdjustment } from './LayoutUtil'; * @param {Point} position * @param {Point[]} newWaypoints * @param {Point[]} oldWaypoints - * @param {Object} hints + * @param {FindNewLintStartIndexHints} hints * * @return {Point} */ diff --git a/lib/features/modeling/behavior/util/LabelLayoutUtil.js b/lib/features/modeling/behavior/util/LabelLayoutUtil.js index 8b925d7897..8f7685840d 100644 --- a/lib/features/modeling/behavior/util/LabelLayoutUtil.js +++ b/lib/features/modeling/behavior/util/LabelLayoutUtil.js @@ -1,33 +1,38 @@ import { findNewLineStartIndex, getAnchorPointAdjustment } from './LayoutUtil'; +import { getMid } from 'diagram-js/lib/layout/LayoutUtil'; + +/** + * @typedef {import('./LineAttachmentUtil').Attachment} Attachment + * + * @typedef {import('./LayoutUtil').FindNewLintStartIndexHints} FindNewLintStartIndexHints + */ + +/** + * @param {Point[]} oldWaypoints + * @param {Point[]} newWaypoints + * @param {Attachment} attachment + * @param {FindNewLintStartIndexHints} hints + * + * @return {number} + */ export function findNewLabelLineStartIndex(oldWaypoints, newWaypoints, attachment, hints) { return findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hints); } - /** * Calculate the required adjustment (move delta) for the given label * after the connection waypoints got updated. * - * @param {djs.model.Label} label - * @param {Array} newWaypoints - * @param {Array} oldWaypoints - * @param {Object} hints + * @param {BpmnLabel} label + * @param {Point[]} newWaypoints + * @param {Point[]} oldWaypoints + * @param {FindNewLintStartIndexHints} hints * - * @return {Point} delta + * @return {Point} */ export function getLabelAdjustment(label, newWaypoints, oldWaypoints, hints) { - var labelPosition = getLabelMid(label); + var labelPosition = getMid(label); return getAnchorPointAdjustment(labelPosition, newWaypoints, oldWaypoints, hints).delta; -} - - -// HELPERS ////////////////////// - -function getLabelMid(label) { - return { - x: label.x + label.width / 2, - y: label.y + label.height / 2 - }; -} +} \ No newline at end of file diff --git a/lib/features/modeling/behavior/util/LayoutUtil.js b/lib/features/modeling/behavior/util/LayoutUtil.js index 0cceb75e39..8e89c5b05c 100644 --- a/lib/features/modeling/behavior/util/LayoutUtil.js +++ b/lib/features/modeling/behavior/util/LayoutUtil.js @@ -14,9 +14,36 @@ import { /** * @typedef {import('diagram-js/lib/util/Types').Point} Point + * + * @typedef {import('./LineAttachmentUtil').Attachment} Attachment + * + * @typedef { { + * point: Point; + * delta: Point; + * } } AnchorPointAdjustment + * + * @param { { + * segmentMove?: { +* segmentStartIndex: number; +* newSegmentStartIndex: number; +* }; +* bendpointMove?: { +* insert: boolean; +* bendpointIndex: number; +* }; +* connectionStart: boolean; +* connectionEnd: boolean; +* } } FindNewLintStartIndexHints */ - +/** + * @param {Point[]} oldWaypoints + * @param {Point[]} newWaypoints + * @param {Attachment} attachment + * @param {FindNewLintStartIndexHints} hints + * + * @return {number} + */ export function findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hints) { var index = attachment.segmentIndex; @@ -104,9 +131,9 @@ export function findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hi * @param {Point} position * @param {Point[]} newWaypoints * @param {Point[]} oldWaypoints - * @param {Object} hints + * @param {FindNewLintStartIndexHints} hints * - * @return { { point: Point, delta: Point } } result + * @return {AnchorPointAdjustment} result */ export function getAnchorPointAdjustment(position, newWaypoints, oldWaypoints, hints) { diff --git a/lib/features/modeling/behavior/util/LineAttachmentUtil.js b/lib/features/modeling/behavior/util/LineAttachmentUtil.js index da90b8fa2f..e65623b52a 100644 --- a/lib/features/modeling/behavior/util/LineAttachmentUtil.js +++ b/lib/features/modeling/behavior/util/LineAttachmentUtil.js @@ -3,6 +3,18 @@ var sqrt = Math.sqrt, max = Math.max, abs = Math.abs; +/** + * @typedef {import('../../../../util/Types').Point} Point + * + * @typedef { { + * type: 'bendpoint' | 'segment'; + * position: Point; + * segmentIndex: number; + * bendpointIndex?: number; + * relativeLocation?: number; + * } } Attachment + */ + /** * Calculate the square (power to two) of a number. * @@ -48,9 +60,9 @@ function getDistance(p1, p2) { * ``` * * @param {Point} point - * @param {Array} line + * @param {Point[]} line * - * @return {Object} attachment + * @return {Attachment} */ export function getAttachment(point, line) { @@ -122,14 +134,14 @@ export function getAttachment(point, line) { } /** - * Gets the intersection between a circle and a line segment. + * Get the intersection between a circle and a line segment. * * @param {Point} s1 segment start * @param {Point} s2 segment end * @param {Point} cc circle center * @param {number} cr circle radius * - * @return {Array} intersections + * @return {Point[]} intersections */ function getCircleSegmentIntersections(s1, s2, cc, cr) { @@ -203,7 +215,7 @@ function fenced(n, rangeStart, rangeEnd) { } /** - * Calculate mid of two points. + * Calculate the mid between two points. * * @param {Point} p1 * @param {Point} p2 From 43c3f9d5b2930a1db933f3f84a31f3d48e5311c1 Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 11 Apr 2023 14:42:22 +0200 Subject: [PATCH 361/989] chore: fix util JSDocs --- lib/util/CompatibilityUtil.js | 13 +++++++++ lib/util/DiUtil.js | 18 ++++++------ lib/util/DrilldownUtil.js | 20 +++++++------ lib/util/LabelUtil.js | 54 +++++++++++++++++++++++++---------- 4 files changed, 73 insertions(+), 32 deletions(-) diff --git a/lib/util/CompatibilityUtil.js b/lib/util/CompatibilityUtil.js index fdc8635cd6..61a0b414fc 100644 --- a/lib/util/CompatibilityUtil.js +++ b/lib/util/CompatibilityUtil.js @@ -3,6 +3,10 @@ import { isFunction } from 'min-dash'; +/** + * @typedef {import('../model/Types').ModdleElement} ModdleElement + */ + // TODO(nikku): remove with future bpmn-js version /** @@ -12,6 +16,10 @@ import { * 2) If Promise class is implemented in current environment. * * @private + * + * @param {Function} api + * + * @return {Function} */ export function wrapForCompatibility(api) { @@ -60,6 +68,11 @@ export function wrapForCompatibility(api) { var DI_ERROR_MESSAGE = 'Tried to access di from the businessObject. The di is available through the diagram element only. For more information, see https://github.com/bpmn-io/bpmn-js/issues/1472'; +/** + * @private + * + * @param {ModdleElement} businessObject + */ export function ensureCompatDiRef(businessObject) { // bpmnElement can have multiple independent DIs diff --git a/lib/util/DiUtil.js b/lib/util/DiUtil.js index be528f085c..e3cc68be93 100644 --- a/lib/util/DiUtil.js +++ b/lib/util/DiUtil.js @@ -9,12 +9,12 @@ import { } from 'min-dash'; /** - * @typedef {import('../model').DiagramElement} DiagramElement - * @typedef {import('../model').ModdleElement} ModdleElement + * @typedef {import('../model/Types').BpmnElement} BpmnElement + * @typedef {import('../model/Types').ModdleElement} ModdleElement */ /** - * @param {DiagramElement} element + * @param {BpmnElement} element * @param {ModdleElement} di * * @return {boolean} @@ -43,7 +43,7 @@ export function isExpanded(element, di) { } /** - * @param {DiagramElement} element + * @param {BpmnElement} element * * @return {boolean} */ @@ -52,7 +52,7 @@ export function isInterrupting(element) { } /** - * @param {DiagramElement} element + * @param {BpmnElement} element * * @return {boolean} */ @@ -61,7 +61,7 @@ export function isEventSubProcess(element) { } /** - * @param {DiagramElement} element + * @param {BpmnElement} element * @param {string} eventType * * @return {boolean} @@ -75,7 +75,7 @@ export function hasEventDefinition(element, eventType) { } /** - * @param {DiagramElement} element + * @param {BpmnElement} element * * @return {boolean} */ @@ -84,7 +84,7 @@ export function hasErrorEventDefinition(element) { } /** - * @param {DiagramElement} element + * @param {BpmnElement} element * * @return {boolean} */ @@ -93,7 +93,7 @@ export function hasEscalationEventDefinition(element) { } /** - * @param {DiagramElement} element + * @param {BpmnElement} element * * @return {boolean} */ diff --git a/lib/util/DrilldownUtil.js b/lib/util/DrilldownUtil.js index 896ff25765..1f053055e8 100644 --- a/lib/util/DrilldownUtil.js +++ b/lib/util/DrilldownUtil.js @@ -1,14 +1,18 @@ import { getDi, is } from './ModelUtil'; +/** + * @typedef {import('../model/Types').BpmnElement} BpmnElement + * @typedef {import('../model/Types').ModdleElement} ModdleElement + */ export var planeSuffix = '_plane'; /** * Get primary shape ID for a plane. * - * @param {djs.model.Base|ModdleElement} element + * @param {BpmnElement|ModdleElement} element * - * @returns {String} + * @return {string} */ export function getShapeIdFromPlane(element) { var id = element.id; @@ -19,9 +23,9 @@ export function getShapeIdFromPlane(element) { /** * Get plane ID for a primary shape. * - * @param {djs.model.Base|ModdleElement} element + * @param {BpmnElement|ModdleElement} element * - * @returns {String} + * @return {string} */ export function getPlaneIdFromShape(element) { var id = element.id; @@ -36,9 +40,9 @@ export function getPlaneIdFromShape(element) { /** * Get plane ID for primary shape ID. * - * @param {String} id + * @param {string} id * - * @returns {String} + * @return {string} */ export function toPlaneId(id) { return addPlaneSuffix(id); @@ -47,9 +51,9 @@ export function toPlaneId(id) { /** * Check wether element is plane. * - * @param {djs.model.Base|ModdleElement} element + * @param {BpmnElement|ModdleElement} element * - * @returns {Boolean} + * @return {boolean} */ export function isPlane(element) { var di = getDi(element); diff --git a/lib/util/LabelUtil.js b/lib/util/LabelUtil.js index 0f0fae685e..495cd3e856 100644 --- a/lib/util/LabelUtil.js +++ b/lib/util/LabelUtil.js @@ -4,6 +4,13 @@ import { import { is } from './ModelUtil'; +/** + * @typedef {import('diagram-js/lib/util/Types').Point} Point + * @typedef {import('diagram-js/lib/util/Types').Rect} Rect + * + * @typedef {import('../model/Types').BpmnElement} BpmnElement + * @typedef {import('../model/Types').ModdleElement} ModdleElement + */ export var DEFAULT_LABEL_SIZE = { width: 90, @@ -14,10 +21,11 @@ export var FLOW_LABEL_INDENT = 15; /** - * Returns true if the given semantic has an external label + * Return true if the given semantic has an external label. * * @param {BpmnElement} semantic - * @return {boolean} true if has label + * + * @return {boolean} */ export function isLabelExternal(semantic) { return is(semantic, 'bpmn:Event') || @@ -32,20 +40,22 @@ export function isLabelExternal(semantic) { } /** - * Returns true if the given element has an external label + * Return true if the given element has an external label. * - * @param {djs.model.shape} element - * @return {boolean} true if has label + * @param {BpmnElement} element + * + * @return {boolean} */ export function hasExternalLabel(element) { return isLabel(element.label); } /** - * Get the position for sequence flow labels + * Get the position of a sequence flow label. + * + * @param {Point[]} waypoints * - * @param {Array} waypoints - * @return {Point} the label position + * @return {Point} */ export function getFlowLabelPosition(waypoints) { @@ -75,10 +85,11 @@ export function getFlowLabelPosition(waypoints) { /** - * Get the middle of a number of waypoints + * Get the middle of a number of waypoints. * - * @param {Array} waypoints - * @return {Point} the mid point + * @param {Point[]} waypoints + * + * @return {Point} */ export function getWaypointsMid(waypoints) { @@ -93,7 +104,13 @@ export function getWaypointsMid(waypoints) { }; } - +/** + * Get the middle of the external label of an element. + * + * @param {BpmnElement} element + * + * @return {Point} + */ export function getExternalLabelMid(element) { if (element.waypoints) { @@ -113,11 +130,13 @@ export function getExternalLabelMid(element) { /** - * Returns the bounds of an elements label, parsed from the elements DI or + * Return the bounds of an elements label, parsed from the elements DI or * generated from its bounds. * - * @param {BpmndDi} di - * @param {djs.model.Base} element + * @param {ModdleElement} di + * @param {BpmnElement} element + * + * @return {Rect} */ export function getExternalLabelBounds(di, element) { @@ -151,6 +170,11 @@ export function getExternalLabelBounds(di, element) { }, size); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ export function isLabel(element) { return element && !!element.labelTarget; } From fc4f4afd7427ddff2fc7e88415a01af37c8b5aae Mon Sep 17 00:00:00 2001 From: Philipp Date: Tue, 11 Apr 2023 15:10:20 +0200 Subject: [PATCH 362/989] chore(import): fix JSDoc --- lib/import/BpmnImporter.js | 47 ++++++++++++++++++++++++++++-------- lib/import/BpmnTreeWalker.js | 47 +++++++++++++++++++----------------- lib/import/Importer.js | 36 ++++++++++++--------------- 3 files changed, 77 insertions(+), 53 deletions(-) diff --git a/lib/import/BpmnImporter.js b/lib/import/BpmnImporter.js index 5894895286..313f8e57bd 100644 --- a/lib/import/BpmnImporter.js +++ b/lib/import/BpmnImporter.js @@ -25,6 +25,20 @@ import { elementToString } from './Util'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + * + * @typedef {import('../features/modeling/ElementFactory').default} ElementFactory + * @typedef {import('../draw/TextRenderer').default} TextRenderer + * + * @typedef {import('../model/Types').BpmnElement} BpmnElement + * @typedef {import('../model/Types').BpmnLabel} BpmnLabel + * @typedef {import('../model/Types').BpmnShape} BpmnShape + * @typedef {import('../model/Types').ModdleElement} ModdleElement + */ /** * @param {ModdleElement} semantic @@ -97,8 +111,12 @@ BpmnImporter.$inject = [ /** - * Add bpmn element (semantic) to the canvas onto the - * specified parent shape. + * Add a BPMN element (semantic) to the canvas making it a child of the + * given parent. + * + * @param {ModdleElement} semantic + * @param {ModdleElement} di + * @param {BpmnShape} parentElement */ BpmnImporter.prototype.add = function(semantic, di, parentElement) { var element, @@ -207,10 +225,10 @@ BpmnImporter.prototype.add = function(semantic, di, parentElement) { /** - * Attach the boundary element to the given host + * Attach a boundary element to the given host. * * @param {ModdleElement} boundarySemantic - * @param {djs.model.Base} boundaryElement + * @param {BpmnShape} boundaryElement */ BpmnImporter.prototype._attachBoundary = function(boundarySemantic, boundaryElement) { var translate = this._translate; @@ -243,7 +261,13 @@ BpmnImporter.prototype._attachBoundary = function(boundarySemantic, boundaryElem /** - * add label for an element + * Add a label to a given element. + * + * @param {ModdleElement} semantic + * @param {ModdleElement} di + * @param {BpmnElement} element + * + * @return {BpmnLabel} */ BpmnImporter.prototype.addLabel = function(semantic, di, element) { var bounds, @@ -275,11 +299,14 @@ BpmnImporter.prototype.addLabel = function(semantic, di, element) { }; /** - * Return the drawn connection end based on the given side. + * Get the source or target of the given connection. + * + * @param {ModdleElement} semantic + * @param {'source' | 'target'} side * - * @throws {Error} if the end is not yet drawn + * @return {BpmnElement} */ -BpmnImporter.prototype._getEnd = function(semantic, side) { +BpmnImporter.prototype._getConnectedElement = function(semantic, side) { var element, refSemantic, @@ -317,11 +344,11 @@ BpmnImporter.prototype._getEnd = function(semantic, side) { }; BpmnImporter.prototype._getSource = function(semantic) { - return this._getEnd(semantic, 'source'); + return this._getConnectedElement(semantic, 'source'); }; BpmnImporter.prototype._getTarget = function(semantic) { - return this._getEnd(semantic, 'target'); + return this._getConnectedElement(semantic, 'target'); }; diff --git a/lib/import/BpmnTreeWalker.js b/lib/import/BpmnTreeWalker.js index 760f028ab2..1a4c948e54 100644 --- a/lib/import/BpmnTreeWalker.js +++ b/lib/import/BpmnTreeWalker.js @@ -12,12 +12,17 @@ import { ensureCompatDiRef } from '../util/CompatibilityUtil'; +/** + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + * + * @typedef {import('../model/Types').ModdleElement} ModdleElement + */ /** - * Returns true if an element has the given meta-model type + * Returns true if an element is of the given meta-model type. * - * @param {ModdleElement} element - * @param {string} type + * @param {ModdleElement} element + * @param {string} type * * @return {boolean} */ @@ -29,6 +34,10 @@ function is(element, type) { /** * Find a suitable display candidate for definitions where the DI does not * correctly specify one. + * + * @param {ModdleElement} + * + * @return {ModdleElement} */ function findDisplayCandidate(definitions) { return find(definitions.rootElements, function(e) { @@ -36,7 +45,10 @@ function findDisplayCandidate(definitions) { }); } - +/** + * @param {Function} handler + * @param {Translate} translate + */ export default function BpmnTreeWalker(handler, translate) { // list of containers already walked @@ -105,7 +117,7 @@ export default function BpmnTreeWalker(handler, translate) { // DI handling ////////////////////// - function registerDi(di) { + var registerDi = this.registerDi = function registerDi(di) { var bpmnElement = di.bpmnElement; if (bpmnElement) { @@ -129,7 +141,7 @@ export default function BpmnTreeWalker(handler, translate) { { element: di } ); } - } + }; function handleDiagram(diagram) { handlePlane(diagram.plane); @@ -149,14 +161,14 @@ export default function BpmnTreeWalker(handler, translate) { // Semantic handling ////////////////////// /** - * Handle definitions and return the rendered diagram (if any) + * Handle definitions and return the rendered diagram (if any). * * @param {ModdleElement} definitions to walk and import * @param {ModdleElement} [diagram] specific diagram to import and display * * @throws {Error} if no diagram to display could be found */ - function handleDefinitions(definitions, diagram) { + this.handleDefinitions = function handleDefinitions(definitions, diagram) { // make sure we walk the correct bpmnElement @@ -234,9 +246,9 @@ export default function BpmnTreeWalker(handler, translate) { // handle all deferred elements handleDeferred(deferred); - } + }; - function handleDeferred() { + var handleDeferred = this.handleDeferred = function handleDeferred() { var fn; @@ -246,7 +258,7 @@ export default function BpmnTreeWalker(handler, translate) { fn(); } - } + }; function handleProcess(process, context) { handleFlowElementsContainer(process, context); @@ -322,10 +334,10 @@ export default function BpmnTreeWalker(handler, translate) { forEach(ioSpecification.dataOutputs, contextual(handleDataOutput, context)); } - function handleSubProcess(subProcess, context) { + var handleSubProcess = this.handleSubProcess = function handleSubProcess(subProcess, context) { handleFlowElementsContainer(subProcess, context); handleArtifacts(subProcess.artifacts, context); - } + }; function handleFlowNode(flowNode, context) { var childCtx = visitIfDi(flowNode, context); @@ -453,13 +465,4 @@ export default function BpmnTreeWalker(handler, translate) { } }); } - - // API ////////////////////// - - return { - handleDeferred: handleDeferred, - handleDefinitions: handleDefinitions, - handleSubProcess: handleSubProcess, - registerDi: registerDi - }; } \ No newline at end of file diff --git a/lib/import/Importer.js b/lib/import/Importer.js index af1552c456..94235feead 100644 --- a/lib/import/Importer.js +++ b/lib/import/Importer.js @@ -10,32 +10,26 @@ import { is } from '../util/ModelUtil'; /** - * The importBpmnDiagram result. + * @typedef {import('../model/Types').ModdleElement} ModdleElement * - * @typedef {Object} ImportBPMNDiagramResult + * @typedef { { + * warnings: string[]; + * } } ImportBPMNDiagramResult * - * @property {Array} warnings + * @typedef {ImportBPMNDiagramResult & Error} ImportBPMNDiagramError */ -/** -* The importBpmnDiagram error. -* -* @typedef {Error} ImportBPMNDiagramError -* -* @property {Array} warnings -*/ - /** * Import the definitions into a diagram. * * Errors and warnings are reported through the specified callback. * - * @param {djs.Diagram} diagram - * @param {ModdleElement} definitions - * @param {ModdleElement} [bpmnDiagram] the diagram to be rendered - * (if not provided, the first one will be rendered) + * @param {ModdleElement} diagram + * @param {ModdleElement} definitions + * @param {ModdleElement} [bpmnDiagram] The diagram to be rendered (if not + * provided, the first one will be rendered). * - * Returns {Promise} + * @return {Promise} */ export function importBpmnDiagram(diagram, definitions, bpmnDiagram) { @@ -51,8 +45,8 @@ export function importBpmnDiagram(diagram, definitions, bpmnDiagram) { * Walk the diagram semantically, importing (=drawing) * all elements you encounter. * - * @param {ModdleElement} definitions - * @param {ModdleElement} bpmnDiagram + * @param {ModdleElement} definitions + * @param {ModdleElement} bpmnDiagram */ function render(definitions, bpmnDiagram) { @@ -127,10 +121,10 @@ export function importBpmnDiagram(diagram, definitions, bpmnDiagram) { * Returns all diagrams in the same hierarchy as the requested diagram. * Includes all parent and sub process diagrams. * - * @param {Array} definitions - * @param {Object} bpmnDiagram + * @param {ModdleElement} definitions + * @param {ModdleElement} bpmnDiagram * - * @returns {Array} + * @return {ModdleElement[]} */ function getDiagramsToImport(definitions, bpmnDiagram) { if (!bpmnDiagram) { From 0974a196dab310a2c2b95510dcf8981e9e8cf429 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 13 Apr 2023 09:37:24 +0200 Subject: [PATCH 363/989] chore: fix more JSDocs --- .../AlignElementsContextPadProvider.js | 33 +++++++-- .../AlignElementsMenuProvider.js | 48 +++++++++--- .../align-elements/BpmnAlignElements.js | 10 ++- lib/features/auto-place/BpmnAutoPlace.js | 3 + lib/features/auto-place/BpmnAutoPlaceUtil.js | 50 ++++++++++--- lib/features/auto-resize/BpmnAutoResize.js | 22 ++++-- .../auto-resize/BpmnAutoResizeProvider.js | 21 ++++-- .../context-pad/ContextPadProvider.js | 73 ++++++++++++++++--- lib/features/copy-paste/BpmnCopyPaste.js | 22 ++++-- lib/features/copy-paste/ModdleCopy.js | 41 ++--------- lib/features/di-ordering/BpmnDiOrdering.js | 8 ++ .../BpmnDistributeElements.js | 13 +++- .../DistributeElementsMenuProvider.js | 31 +++++++- 13 files changed, 274 insertions(+), 101 deletions(-) diff --git a/lib/features/align-elements/AlignElementsContextPadProvider.js b/lib/features/align-elements/AlignElementsContextPadProvider.js index 68a91235b5..ef1c74821d 100644 --- a/lib/features/align-elements/AlignElementsContextPadProvider.js +++ b/lib/features/align-elements/AlignElementsContextPadProvider.js @@ -4,10 +4,28 @@ import { import ICONS from './AlignElementsIcons'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/features/context-pad/ContextPad').default} ContextPad + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').default} PopupMenu + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + * + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('diagram-js/lib/features/context-pad/ContextPad').ContextPadEntries} ContextPadEntries + * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').default} ContextPadProvider + */ + var LOW_PRIORITY = 900; /** - * A provider for align elements context pad button + * A provider for the `Align elements` context pad entry. + * + * @implements {ContextPadProvider} + * + * @param {ContextPad} contextPad + * @param {PopupMenu} popupMenu + * @param {Translate} translate + * @param {Canvas} canvas */ export default function AlignElementsContextPadProvider(contextPad, popupMenu, translate, canvas) { @@ -26,6 +44,11 @@ AlignElementsContextPadProvider.$inject = [ 'canvas' ]; +/** + * @param {BpmnElement[]} elements + * + * @return {ContextPadEntries} + */ AlignElementsContextPadProvider.prototype.getMultiElementContextPadEntries = function(elements) { var actions = {}; @@ -40,7 +63,7 @@ AlignElementsContextPadProvider.prototype._isAllowed = function(elements) { return !this._popupMenu.isEmpty(elements, 'align-elements'); }; -AlignElementsContextPadProvider.prototype._getEntries = function(elements) { +AlignElementsContextPadProvider.prototype._getEntries = function() { var self = this; return { @@ -49,8 +72,8 @@ AlignElementsContextPadProvider.prototype._getEntries = function(elements) { title: self._translate('Align elements'), imageUrl: ICONS['align'], action: { - click: function(event, elements) { - var position = self._getMenuPosition(elements); + click: function(event, target) { + var position = self._getMenuPosition(target); assign(position, { cursor: { @@ -59,7 +82,7 @@ AlignElementsContextPadProvider.prototype._getEntries = function(elements) { } }); - self._popupMenu.open(elements, 'align-elements', position); + self._popupMenu.open(target, 'align-elements', position); } } } diff --git a/lib/features/align-elements/AlignElementsMenuProvider.js b/lib/features/align-elements/AlignElementsMenuProvider.js index 61805a75bf..468ee66308 100644 --- a/lib/features/align-elements/AlignElementsMenuProvider.js +++ b/lib/features/align-elements/AlignElementsMenuProvider.js @@ -5,6 +5,17 @@ import { forEach, } from 'min-dash'; +/** + * @typedef {import('diagram-js/lib/features/align-elements/AlignElements').default} AlignElements + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').default} PopupMenu + * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + * + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').PopupMenuEntries} PopupMenuEntries + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').default} PopupMenuProvider + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').PopupMenuTarget} PopupMenuTarget + */ + var ALIGNMENT_OPTIONS = [ 'left', 'center', @@ -15,7 +26,14 @@ var ALIGNMENT_OPTIONS = [ ]; /** - * A provider for align elements popup menu. + * A provider for the `Align elements` popup menu. + * + * @implements {PopupMenuProvider} + * + * @param {PopupMenu} popupMenu + * @param {AlignElements} alignElements + * @param {Translate} translate + * @param {Rules} rules */ export default function AlignElementsMenuProvider(popupMenu, alignElements, translate, rules) { @@ -34,21 +52,31 @@ AlignElementsMenuProvider.$inject = [ 'rules' ]; -AlignElementsMenuProvider.prototype.getPopupMenuEntries = function(elements) { +/** + * @param {PopupMenuTarget} target + * + * @returns {PopupMenuEntries} + */ +AlignElementsMenuProvider.prototype.getPopupMenuEntries = function(target) { var entries = {}; - if (this._isAllowed(elements)) { - assign(entries, this._getEntries(elements)); + if (this._isAllowed(target)) { + assign(entries, this._getEntries(target)); } return entries; }; -AlignElementsMenuProvider.prototype._isAllowed = function(elements) { - return this._rules.allowed('elements.align', { elements: elements }); +AlignElementsMenuProvider.prototype._isAllowed = function(target) { + return this._rules.allowed('elements.align', { elements: target }); }; -AlignElementsMenuProvider.prototype._getEntries = function(elements) { +/** + * @param {PopupMenuTarget} target + * + * @return {PopupMenuEntries} + */ +AlignElementsMenuProvider.prototype._getEntries = function(target) { var alignElements = this._alignElements, translate = this._translate, popupMenu = this._popupMenu; @@ -60,9 +88,9 @@ AlignElementsMenuProvider.prototype._getEntries = function(elements) { group: 'align', title: translate('Align elements ' + alignment), className: 'bjs-align-elements-menu-entry', - imageUrl: ICONS[alignment], - action: function(event, entry) { - alignElements.trigger(elements, alignment); + imageUrl: ICONS[ alignment ], + action: function() { + alignElements.trigger(target, alignment); popupMenu.close(); } }; diff --git a/lib/features/align-elements/BpmnAlignElements.js b/lib/features/align-elements/BpmnAlignElements.js index 451b8068fb..7beb39a4b7 100644 --- a/lib/features/align-elements/BpmnAlignElements.js +++ b/lib/features/align-elements/BpmnAlignElements.js @@ -8,7 +8,13 @@ import { } from 'min-dash'; /** - * Rule provider for alignment of BPMN elements. + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + */ + +/** + * Rule provider for aligning BPMN elements. + * + * @param {EventBus} eventBus */ export default function BpmnAlignElements(eventBus) { RuleProvider.call(this, eventBus); @@ -18,7 +24,7 @@ BpmnAlignElements.$inject = [ 'eventBus' ]; inherits(BpmnAlignElements, RuleProvider); -BpmnAlignElements.prototype.init = function() { +BpmnAlignElements.prototype._init = function() { this.addRule('elements.align', function(context) { var elements = context.elements; diff --git a/lib/features/auto-place/BpmnAutoPlace.js b/lib/features/auto-place/BpmnAutoPlace.js index cd2e117110..705cd018ae 100644 --- a/lib/features/auto-place/BpmnAutoPlace.js +++ b/lib/features/auto-place/BpmnAutoPlace.js @@ -1,5 +1,8 @@ import { getNewShapePosition } from './BpmnAutoPlaceUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + */ /** * BPMN auto-place behavior. diff --git a/lib/features/auto-place/BpmnAutoPlaceUtil.js b/lib/features/auto-place/BpmnAutoPlaceUtil.js index c815eee8db..238ef7cbe4 100644 --- a/lib/features/auto-place/BpmnAutoPlaceUtil.js +++ b/lib/features/auto-place/BpmnAutoPlaceUtil.js @@ -13,13 +13,19 @@ import { getConnectedDistance } from 'diagram-js/lib/features/auto-place/AutoPlaceUtil'; +/** + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/util/Types').Point} Point + * @typedef {import('diagram-js/lib/util/Types').DirectionTRBL} DirectionTRBL + */ /** - * Find the new position for the target element to - * connect to source. + * Get the position for given new target relative to the source it will be + * connected to. * - * @param {djs.model.Shape} source - * @param {djs.model.Shape} element + * @param {BpmnShape} source + * @param {BpmnShape} element * * @return {Point} */ @@ -39,8 +45,13 @@ export function getNewShapePosition(source, element) { } /** - * Always try to place element right of source; - * compute actual distance from previous nodes in flow. + * Get the position for given new flow node. Try placing the flow node right of + * the source. + * + * @param {BpmnShape} source + * @param {BpmnShape} element + * + * @return {Point} */ export function getFlowNodePosition(source, element) { @@ -80,11 +91,16 @@ export function getFlowNodePosition(source, element) { return findFreePosition(source, element, position, generateGetNextPosition(nextPositionDirection)); } - +/** + * @param {DirectionTRBL} orientation + * @param {number} minDistance + * + * @return {number} + */ function getVerticalDistance(orientation, minDistance) { - if (orientation.indexOf('top') != -1) { + if (orientation.includes('top')) { return -1 * minDistance; - } else if (orientation.indexOf('bottom') != -1) { + } else if (orientation.includes('bottom')) { return minDistance; } else { return 0; @@ -93,7 +109,13 @@ function getVerticalDistance(orientation, minDistance) { /** - * Always try to place text annotations top right of source. + * Get the position for given text annotation. Try placing the text annotation + * top-right of the source. + * + * @param {BpmnShape} source + * @param {BpmnShape} element + * + * @return {Point} */ export function getTextAnnotationPosition(source, element) { @@ -122,7 +144,13 @@ export function getTextAnnotationPosition(source, element) { /** - * Always put element bottom right of source. + * Get the position for given new data element. Try placing the data element + * bottom-right of the source. + * + * @param {BpmnShape} source + * @param {BpmnShape} element + * + * @return {Point} */ export function getDataElementPosition(source, element) { diff --git a/lib/features/auto-resize/BpmnAutoResize.js b/lib/features/auto-resize/BpmnAutoResize.js index fce4c5fa46..a864fa0727 100644 --- a/lib/features/auto-resize/BpmnAutoResize.js +++ b/lib/features/auto-resize/BpmnAutoResize.js @@ -4,10 +4,18 @@ import inherits from 'inherits-browser'; import { is } from '../../util/ModelUtil'; +/** + * @typedef {import('didi').Injector} Injector + * + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/util/Types').Rect} Rect + */ /** - * Sub class of the AutoResize module which implements a BPMN - * specific resize function. + * BPMN-specific resize behavior. + * + * @param {Injector} injector */ export default function BpmnAutoResize(injector) { @@ -20,13 +28,13 @@ BpmnAutoResize.$inject = [ inherits(BpmnAutoResize, AutoResize); - /** - * Resize shapes and lanes. + * Perform BPMN-specific resizing of participants. * - * @param {djs.model.Shape} target - * @param {Bounds} newBounds - * @param {Object} hints + * @param {BpmnShape} target + * @param {Rect} newBounds + * @param {Object} [hints] + * @param {string} [hints.autoResize] */ BpmnAutoResize.prototype.resize = function(target, newBounds, hints) { diff --git a/lib/features/auto-resize/BpmnAutoResizeProvider.js b/lib/features/auto-resize/BpmnAutoResizeProvider.js index da1e949e1c..2f228c5406 100644 --- a/lib/features/auto-resize/BpmnAutoResizeProvider.js +++ b/lib/features/auto-resize/BpmnAutoResizeProvider.js @@ -1,5 +1,7 @@ import { is } from '../../util/ModelUtil'; +import { isLabel } from '../../util/LabelUtil'; + import inherits from 'inherits-browser'; import { forEach } from 'min-dash'; @@ -7,12 +9,17 @@ import { forEach } from 'min-dash'; import AutoResizeProvider from 'diagram-js/lib/features/auto-resize/AutoResizeProvider'; /** - * @typedef {import('diagram-js/lib/model/Types').Element} Element - * @typedef {import('diagram-js/lib/model/Types').Shape} Shape + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../modeling/Modeling').default} Modeling + * + * @typedef {import('../../model/Types').BpmnShape} BpmnShape */ /** - * This module is a provider for automatically resizing parent BPMN elements + * BPMN-specific provider for automatic resizung. + * + * @param {EventBus} eventBus + * @param {Modeling} modeling */ export default function BpmnAutoResizeProvider(eventBus, modeling) { AutoResizeProvider.call(this, eventBus); @@ -29,10 +36,10 @@ BpmnAutoResizeProvider.$inject = [ /** - * Check if the given target can be expanded + * BPMN-specific check whether given elements can be resized. * - * @param {Element[]} elements - * @param {Shape} target + * @param {BpmnShape[]} elements + * @param {BpmnShape} target * * @return {boolean} */ @@ -52,7 +59,7 @@ BpmnAutoResizeProvider.prototype.canResize = function(elements, target) { forEach(elements, function(element) { - if (is(element, 'bpmn:Lane') || element.labelTarget) { + if (is(element, 'bpmn:Lane') || isLabel(element)) { canResize = false; return; } diff --git a/lib/features/context-pad/ContextPadProvider.js b/lib/features/context-pad/ContextPadProvider.js index f85b83b308..1397327dda 100644 --- a/lib/features/context-pad/ContextPadProvider.js +++ b/lib/features/context-pad/ContextPadProvider.js @@ -26,9 +26,46 @@ import { hasPrimaryModifier } from 'diagram-js/lib/util/Mouse'; +/** + * @typedef {import('didi').Injector} Injector + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/features/context-pad/ContextPad').default} ContextPad + * @typedef {import('../modeling/Modeling').default} Modeling + * @typedef {import('../modeling/ElementFactory').default} ElementFactory + * @typedef {import('diagram-js/lib/features/connect/Connect').default} Connect + * @typedef {import('diagram-js/lib/features/create/Create').default} Create + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').default} PopupMenu + * @typedef {import('diagram-js/lib/features/canvas/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + * + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').ModdleElement} ModdleElement + * + * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').default} BaseContextPadProvider + * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').ContextPadEntries} ContextPadEntries + * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').ContextPadEntry} ContextPadEntry + * + * @typedef { { autoPlace?: boolean; } } ContextPadConfig + */ /** - * A provider for BPMN 2.0 elements context pad + * BPMN-specific context pad provider. + * + * @implements {BaseContextPadProvider} + * + * @param {ContextPadConfig} config + * @param {Injector} injector + * @param {EventBus} eventBus + * @param {ContextPad} contextPad + * @param {Modeling} modeling + * @param {ElementFactory} elementFactory + * @param {Connect} connect + * @param {Create} create + * @param {PopupMenu} popupMenu + * @param {Canvas} canvas + * @param {Rules} rules + * @param {Translate} translate */ export default function ContextPadProvider( config, injector, eventBus, @@ -87,6 +124,11 @@ ContextPadProvider.$inject = [ 'translate' ]; +/** + * @param {BpmnElement[]} elements + * + * @return {ContextPadEntries} + */ ContextPadProvider.prototype.getMultiElementContextPadEntries = function(elements) { var modeling = this._modeling; @@ -111,7 +153,8 @@ ContextPadProvider.prototype.getMultiElementContextPadEntries = function(element }; /** - * @param {djs.model.Base[]} elements + * @param {BpmnElement[]} elements + * * @return {boolean} */ ContextPadProvider.prototype._isDeleteAllowed = function(elements) { @@ -129,6 +172,11 @@ ContextPadProvider.prototype._isDeleteAllowed = function(elements) { return baseAllowed; }; +/** + * @param {BpmnElement} element + * + * @returns {ContextPadEntries} + */ ContextPadProvider.prototype.getContextPadEntries = function(element) { var contextPad = this._contextPad, modeling = this._modeling, @@ -174,14 +222,14 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { } /** - * Create an append action + * Create an append action. * * @param {string} type * @param {string} className * @param {string} [title] * @param {Object} [options] * - * @return {Object} descriptor + * @return {ContextPadEntry} */ function appendAction(type, className, title, options) { @@ -219,7 +267,7 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { function splitLaneHandler(count) { - return function(event, element) { + return function(_, element) { // actual split modeling.splitLane(element, count); @@ -503,14 +551,21 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { // helpers ///////// -function isEventType(eventBo, type, definition) { +/** + * @param {ModdleElement} businessObject + * @param {string} type + * @param {string} eventDefinitionType + * + * @return {boolean} + */ +function isEventType(businessObject, type, eventDefinitionType) { - var isType = eventBo.$instanceOf(type); + var isType = businessObject.$instanceOf(type); var isDefinition = false; - var definitions = eventBo.eventDefinitions || []; + var definitions = businessObject.eventDefinitions || []; forEach(definitions, function(def) { - if (def.$type === definition) { + if (def.$type === eventDefinitionType) { isDefinition = true; } }); diff --git a/lib/features/copy-paste/BpmnCopyPaste.js b/lib/features/copy-paste/BpmnCopyPaste.js index 3bd6cbab78..e8789e28f9 100644 --- a/lib/features/copy-paste/BpmnCopyPaste.js +++ b/lib/features/copy-paste/BpmnCopyPaste.js @@ -12,6 +12,14 @@ import { reduce } from 'min-dash'; +import { isLabel } from '../../util/LabelUtil'; + +/** + * @typedef {import('../modeling/BpmnFactory').default} BpmnFactory + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('./ModdleCopy').default} ModdleCopy + */ + function copyProperties(source, target, properties) { if (!isArray(properties)) { properties = [ properties ]; @@ -26,7 +34,13 @@ function copyProperties(source, target, properties) { var LOW_PRIORITY = 750; - +/** + * BPMN-specific copy & paste. + * + * @param {BpmnFactory} bpmnFactory + * @param {EventBus} eventBus + * @param {ModdleCopy} moddleCopy + */ export default function BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) { function copy(bo, clone) { @@ -177,9 +191,3 @@ BpmnCopyPaste.$inject = [ 'eventBus', 'moddleCopy' ]; - -// helpers ////////// - -function isLabel(element) { - return !!element.labelTarget; -} diff --git a/lib/features/copy-paste/ModdleCopy.js b/lib/features/copy-paste/ModdleCopy.js index 1e6a22537a..6e9d411df6 100644 --- a/lib/features/copy-paste/ModdleCopy.js +++ b/lib/features/copy-paste/ModdleCopy.js @@ -24,39 +24,11 @@ var DISALLOWED_PROPERTIES = [ ]; /** - * @typedef {Function} ModdleCopyCanCopyPropertiesListener + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../modeling/BpmnFactory').default} BpmnFactory + * @typedef {import('../../model/Types').Moddle} Moddle * - * @param {Object} context - * @param {Array} context.propertyNames - * @param {ModdleElement} context.sourceElement - * @param {ModdleElement} context.targetElement - * - * @returns {Array|boolean} - Return properties to be copied or false to disallow - * copying. - */ - -/** - * @typedef {Function} ModdleCopyCanCopyPropertyListener - * - * @param {Object} context - * @param {ModdleElement} context.parent - * @param {any} context.property - * @param {string} context.propertyName - * - * @returns {*|boolean} - Return copied property or false to disallow - * copying. - */ - -/** - * @typedef {Function} ModdleCopyCanSetCopiedPropertyListener - * - * @param {Object} context - * @param {ModdleElement} context.parent - * @param {any} context.property - * @param {string} context.propertyName - * - * @returns {boolean} - Return false to disallow - * setting copied property. + * @typedef {import('../../model/Types').ModdleElement} ModdleElement */ /** @@ -64,7 +36,7 @@ var DISALLOWED_PROPERTIES = [ * * @param {EventBus} eventBus * @param {BpmnFactory} bpmnFactory - * @param {BpmnModdle} moddle + * @param {Moddle} moddle */ export default function ModdleCopy(eventBus, bpmnFactory, moddle) { this._bpmnFactory = bpmnFactory; @@ -128,7 +100,7 @@ ModdleCopy.$inject = [ * * @param {ModdleElement} sourceElement * @param {ModdleElement} targetElement - * @param {Array} [propertyNames] + * @param {string[]} [propertyNames] * @param {boolean} [clone=false] * * @return {ModdleElement} @@ -272,7 +244,6 @@ ModdleCopy.prototype.copyProperty = function(property, parent, propertyName, clo }; ModdleCopy.prototype._copyId = function(id, element, clone = false) { - if (clone) { return id; } diff --git a/lib/features/di-ordering/BpmnDiOrdering.js b/lib/features/di-ordering/BpmnDiOrdering.js index 9b345a15f8..26a1db5df1 100644 --- a/lib/features/di-ordering/BpmnDiOrdering.js +++ b/lib/features/di-ordering/BpmnDiOrdering.js @@ -8,9 +8,17 @@ import { import { selfAndAllChildren } from 'diagram-js/lib/util/Elements'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + */ var HIGH_PRIORITY = 2000; +/** + * @param {EventBus} eventBus + * @param {Canvas} canvas + */ export default function BpmnDiOrdering(eventBus, canvas) { eventBus.on('saveXML.start', HIGH_PRIORITY, orderDi); diff --git a/lib/features/distribute-elements/BpmnDistributeElements.js b/lib/features/distribute-elements/BpmnDistributeElements.js index 4e641c477c..5685a8f0d8 100644 --- a/lib/features/distribute-elements/BpmnDistributeElements.js +++ b/lib/features/distribute-elements/BpmnDistributeElements.js @@ -11,16 +11,21 @@ import { isAny } from '../modeling/util/ModelingUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + */ /** - * Registers element exclude filters for elements that - * currently do not support distribution. + * Registers element exclude filters for elements that currently do not support + * distribution. + * + * @param {EventBus} eventBus */ -export default function BpmnDistributeElements(distributeElements, eventBus, rules) { +export default function BpmnDistributeElements(eventBus) { RuleProvider.call(this, eventBus); } -BpmnDistributeElements.$inject = [ 'distributeElements', 'eventBus', 'rules' ]; +BpmnDistributeElements.$inject = [ 'eventBus' ]; inherits(BpmnDistributeElements, RuleProvider); diff --git a/lib/features/distribute-elements/DistributeElementsMenuProvider.js b/lib/features/distribute-elements/DistributeElementsMenuProvider.js index 7fbefd1e7e..1fc77095b2 100644 --- a/lib/features/distribute-elements/DistributeElementsMenuProvider.js +++ b/lib/features/distribute-elements/DistributeElementsMenuProvider.js @@ -2,10 +2,28 @@ import ICONS from './DistributeElementsIcons'; import { assign } from 'min-dash'; +/** + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').default} PopupMenu + * @typedef {import('./BpmnDistributeElements').default} DistributeElements + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules + * + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').PopupMenuEntries} PopupMenuEntries + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').default} PopupMenuProvider + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').PopupMenuTarget} PopupMenuTarget + */ + var LOW_PRIORITY = 900; /** - * A provider for distribute elements popup menu. + * A provider for the distribute elements popup menu. + * + * @implements {PopupMenuProvider} + * + * @param {PopupMenu} popupMenu + * @param {DistributeElements} distributeElements + * @param {Translate} translate + * @param {Rules} rules */ export default function DistributeElementsMenuProvider( popupMenu, distributeElements, translate, rules) { @@ -24,11 +42,16 @@ DistributeElementsMenuProvider.$inject = [ 'rules' ]; -DistributeElementsMenuProvider.prototype.getPopupMenuEntries = function(elements) { +/** + * @param {PopupMenuTarget} target + * + * @returns {PopupMenuEntries} + */ +DistributeElementsMenuProvider.prototype.getPopupMenuEntries = function(target) { var entries = {}; - if (this._isAllowed(elements)) { - assign(entries, this._getEntries(elements)); + if (this._isAllowed(target)) { + assign(entries, this._getEntries(target)); } return entries; From 7c089d0023acbc78ac26383533b46b5a2112c19f Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 13 Apr 2023 09:47:08 +0200 Subject: [PATCH 364/989] chore(drilldown): fix JSDoc and code style --- .../drilldown/DrilldownBreadcrumbs.js | 58 +++++---- lib/features/drilldown/DrilldownCentering.js | 9 +- .../drilldown/DrilldownOverlayBehavior.js | 110 +++++++++++------- .../drilldown/SubprocessCompatibility.js | 110 +++++++++++++----- 4 files changed, 191 insertions(+), 96 deletions(-) diff --git a/lib/features/drilldown/DrilldownBreadcrumbs.js b/lib/features/drilldown/DrilldownBreadcrumbs.js index 930d49a59f..f160927515 100644 --- a/lib/features/drilldown/DrilldownBreadcrumbs.js +++ b/lib/features/drilldown/DrilldownBreadcrumbs.js @@ -7,32 +7,40 @@ import { getPlaneIdFromShape } from '../../util/DrilldownUtil'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + */ + var OPEN_CLASS = 'bjs-breadcrumbs-shown'; /** * Adds overlays that allow switching planes on collapsed subprocesses. * - * @param {eventBus} eventBus - * @param {elementRegistry} elementRegistry - * @param {overlays} overlays - * @param {canvas} canvas + * @param {EventBus} eventBus + * @param {ElementRegistry} elementRegistry + * @param {Canvas} canvas */ -export default function DrilldownBreadcrumbs(eventBus, elementRegistry, overlays, canvas) { +export default function DrilldownBreadcrumbs(eventBus, elementRegistry, canvas) { var breadcrumbs = domify('
    '); var container = canvas.getContainer(); var containerClasses = classes(container); container.appendChild(breadcrumbs); - var boParents = []; + var businessObjectParents = []; // update breadcrumbs if name or ID of the primary shape changes - eventBus.on('element.changed', function(e) { - var shape = e.element, - bo = getBusinessObject(shape); + eventBus.on('element.changed', function(event) { + var shape = event.element, + businessObject = getBusinessObject(shape); - var isPresent = find(boParents, function(el) { - return el === bo; + var isPresent = find(businessObjectParents, function(element) { + return element === businessObject; }); if (!isPresent) { @@ -46,14 +54,14 @@ export default function DrilldownBreadcrumbs(eventBus, elementRegistry, overlays * Updates the displayed breadcrumbs. If no element is provided, only the * labels are updated. * - * @param {djs.model.Base} [element] + * @param {BpmnElement} [element] */ function updateBreadcrumbs(element) { if (element) { - boParents = getBoParentChain(element); + businessObjectParents = getBusinessObjectParentChain(element); } - var path = boParents.map(function(parent) { + var path = businessObjectParents.map(function(parent) { var title = escapeHTML(parent.name || parent.id); var link = domify('
  • ' + title + '
  • '); @@ -63,8 +71,9 @@ export default function DrilldownBreadcrumbs(eventBus, elementRegistry, overlays // element in the elementRegisty. Instead, we search for the corresponding participant if (!parentPlane && is(parent, 'bpmn:Process')) { var participant = elementRegistry.find(function(element) { - var bo = getBusinessObject(element); - return bo && bo.processRef && bo.processRef === parent; + var businessObject = getBusinessObject(element); + + return businessObject && businessObject.get('processRef') && businessObject.get('processRef') === parent; }); parentPlane = canvas.findRoot(participant.id); @@ -81,10 +90,11 @@ export default function DrilldownBreadcrumbs(eventBus, elementRegistry, overlays // show breadcrumbs and expose state to .djs-container var visible = path.length > 1; + containerClasses.toggle(OPEN_CLASS, visible); - path.forEach(function(el) { - breadcrumbs.appendChild(el); + path.forEach(function(element) { + breadcrumbs.appendChild(element); }); } @@ -94,7 +104,7 @@ export default function DrilldownBreadcrumbs(eventBus, elementRegistry, overlays } -DrilldownBreadcrumbs.$inject = [ 'eventBus', 'elementRegistry', 'overlays', 'canvas' ]; +DrilldownBreadcrumbs.$inject = [ 'eventBus', 'elementRegistry', 'canvas' ]; // helpers ////////// @@ -103,16 +113,16 @@ DrilldownBreadcrumbs.$inject = [ 'eventBus', 'elementRegistry', 'overlays', 'can * Returns the parents for the element using the business object chain, * starting with the root element. * - * @param {djs.model.Shape} child + * @param {BpmnShape} child * - * @returns {Array} parents + * @returns {BpmnShape} */ -function getBoParentChain(child) { - var bo = getBusinessObject(child); +function getBusinessObjectParentChain(child) { + var businessObject = getBusinessObject(child); var parents = []; - for (var element = bo; element; element = element.$parent) { + for (var element = businessObject; element; element = element.$parent) { if (is(element, 'bpmn:SubProcess') || is(element, 'bpmn:Process')) { parents.push(element); } diff --git a/lib/features/drilldown/DrilldownCentering.js b/lib/features/drilldown/DrilldownCentering.js index c7f346de7c..c8a63957cd 100644 --- a/lib/features/drilldown/DrilldownCentering.js +++ b/lib/features/drilldown/DrilldownCentering.js @@ -1,12 +1,17 @@ import { is } from '../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + */ + /** * Move collapsed subprocesses into view when drilling down. * * Zoom and scroll are saved in a session. * - * @param {eventBus} eventBus - * @param {canvas} canvas + * @param {EventBus} eventBus + * @param {Canvas} canvas */ export default function DrilldownCentering(eventBus, canvas) { diff --git a/lib/features/drilldown/DrilldownOverlayBehavior.js b/lib/features/drilldown/DrilldownOverlayBehavior.js index 98cc38fbcf..07d1f5acec 100644 --- a/lib/features/drilldown/DrilldownOverlayBehavior.js +++ b/lib/features/drilldown/DrilldownOverlayBehavior.js @@ -1,15 +1,32 @@ import inherits from 'inherits-browser'; import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; -import { is } from '../../util/ModelUtil'; +import { getBusinessObject, is } from '../../util/ModelUtil'; import { classes, domify } from 'min-dom'; import { getPlaneIdFromShape } from '../../util/DrilldownUtil'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/features/overlays/Overlays').default} Overlays + * + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnParent} BpmnParent + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + */ + var LOW_PRIORITY = 250; var ARROW_DOWN_SVG = ''; var EMPTY_MARKER = 'bjs-drilldown-empty'; +/** + * @param {Canvas} canvas + * @param {EventBus} eventBus + * @param {ElementRegistry} elementRegistry + * @param {Overlays} overlays + */ export default function DrilldownOverlayBehavior( canvas, eventBus, elementRegistry, overlays ) { @@ -26,10 +43,10 @@ export default function DrilldownOverlayBehavior( var shape = context.shape; // Add overlay to the collapsed shape - if (self.canDrillDown(shape)) { - self.addOverlay(shape); + if (self._canDrillDown(shape)) { + self._addOverlay(shape); } else { - self.removeOverlay(shape); + self._removeOverlay(shape); } }, true); @@ -38,10 +55,10 @@ export default function DrilldownOverlayBehavior( var shape = context.shape; // Add overlay to the collapsed shape - if (self.canDrillDown(shape)) { - self.addOverlay(shape); + if (self._canDrillDown(shape)) { + self._addOverlay(shape); } else { - self.removeOverlay(shape); + self._removeOverlay(shape); } }, true); @@ -53,13 +70,13 @@ export default function DrilldownOverlayBehavior( shape = context.shape; // Add overlay to the collapsed shape - if (self.canDrillDown(shape)) { - self.addOverlay(shape); + if (self._canDrillDown(shape)) { + self._addOverlay(shape); } - self.updateDrilldownOverlay(oldParent); - self.updateDrilldownOverlay(newParent); - self.updateDrilldownOverlay(shape); + self._updateDrilldownOverlay(oldParent); + self._updateDrilldownOverlay(newParent); + self._updateDrilldownOverlay(shape); }, true); @@ -70,21 +87,21 @@ export default function DrilldownOverlayBehavior( shape = context.shape; // Add overlay to the collapsed shape - if (self.canDrillDown(shape)) { - self.addOverlay(shape); + if (self._canDrillDown(shape)) { + self._addOverlay(shape); } - self.updateDrilldownOverlay(oldParent); - self.updateDrilldownOverlay(newParent); - self.updateDrilldownOverlay(shape); + self._updateDrilldownOverlay(oldParent); + self._updateDrilldownOverlay(newParent); + self._updateDrilldownOverlay(shape); }, true); eventBus.on('import.render.complete', function() { elementRegistry.filter(function(e) { - return self.canDrillDown(e); + return self._canDrillDown(e); }).map(function(el) { - self.addOverlay(el); + self._addOverlay(el); }); }); @@ -92,7 +109,10 @@ export default function DrilldownOverlayBehavior( inherits(DrilldownOverlayBehavior, CommandInterceptor); -DrilldownOverlayBehavior.prototype.updateDrilldownOverlay = function(shape) { +/** + * @param {BpmnShape} shape + */ +DrilldownOverlayBehavior.prototype._updateDrilldownOverlay = function(shape) { var canvas = this._canvas; if (!shape) { @@ -100,51 +120,61 @@ DrilldownOverlayBehavior.prototype.updateDrilldownOverlay = function(shape) { } var root = canvas.findRoot(shape); + if (root) { - this.updateOverlayVisibility(root); + this._updateOverlayVisibility(root); } }; - -DrilldownOverlayBehavior.prototype.canDrillDown = function(element) { +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ +DrilldownOverlayBehavior.prototype._canDrillDown = function(element) { var canvas = this._canvas; + return is(element, 'bpmn:SubProcess') && canvas.findRoot(getPlaneIdFromShape(element)); }; /** - * Updates visibility of the drilldown overlay. If the plane has no elements, - * the drilldown will be only shown when the element is selected. + * Update the visibility of the drilldown overlay. If the plane has no elements, + * the drilldown will only be shown when the element is selected. * - * @param {djs.model.Shape|djs.model.Root} element collapsed shape or root element + * @param {BpmnParent} element The collapsed root or shape. */ -DrilldownOverlayBehavior.prototype.updateOverlayVisibility = function(element) { +DrilldownOverlayBehavior.prototype._updateOverlayVisibility = function(element) { var overlays = this._overlays; - var bo = element.businessObject; + var businessObject = getBusinessObject(element); - var overlay = overlays.get({ element: bo.id, type: 'drilldown' })[0]; + var overlay = overlays.get({ element: businessObject.id, type: 'drilldown' })[0]; if (!overlay) { return; } - var hasContent = bo && bo.flowElements && bo.flowElements.length; - classes(overlay.html).toggle(EMPTY_MARKER, !hasContent); + var hasFlowElements = businessObject + && businessObject.get('flowElements') + && businessObject.get('flowElements').length; + + classes(overlay.html).toggle(EMPTY_MARKER, !hasFlowElements); }; /** - * Attaches a drilldown button to the given element. We assume that the plane has - * the same id as the element. + * Add a drilldown button to the given element assuming the plane has the same + * ID as the element. * - * @param {djs.model.Shape} element collapsed shape + * @param {BpmnShape} element The collapsed shape. */ -DrilldownOverlayBehavior.prototype.addOverlay = function(element) { - var canvas = this._canvas; - var overlays = this._overlays; +DrilldownOverlayBehavior.prototype._addOverlay = function(element) { + var canvas = this._canvas, + overlays = this._overlays; var existingOverlays = overlays.get({ element: element, type: 'drilldown' }); + if (existingOverlays.length) { - this.removeOverlay(element); + this._removeOverlay(element); } var button = domify(''); @@ -161,10 +191,10 @@ DrilldownOverlayBehavior.prototype.addOverlay = function(element) { html: button }); - this.updateOverlayVisibility(element); + this._updateOverlayVisibility(element); }; -DrilldownOverlayBehavior.prototype.removeOverlay = function(element) { +DrilldownOverlayBehavior.prototype._removeOverlay = function(element) { var overlays = this._overlays; overlays.remove({ diff --git a/lib/features/drilldown/SubprocessCompatibility.js b/lib/features/drilldown/SubprocessCompatibility.js index 19dedcfb50..43f3ea9865 100644 --- a/lib/features/drilldown/SubprocessCompatibility.js +++ b/lib/features/drilldown/SubprocessCompatibility.js @@ -2,6 +2,18 @@ import { asBounds, asTRBL } from 'diagram-js/lib/layout/LayoutUtil'; import { is, isAny } from '../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../../model/Types').Moddle} Moddle + * + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/core/Canvas').CanvasPlane} CanvasPlane + * + * @typedef {import('diagram-js/lib/util/Types').Rect} Rect + */ + var DEFAULT_POSITION = { x: 180, y: 160 @@ -9,10 +21,10 @@ var DEFAULT_POSITION = { /** * Hook into `import.render.start` and create new planes for diagrams with - * collapsed subprocesses and all dis on the same plane. + * collapsed subprocesses and all DI elements on the same plane. * - * @param {eventBus} eventBus - * @param {moddle} moddle + * @param {EventBus} eventBus + * @param {Moddle} moddle */ export default function SubprocessCompatibility(eventBus, moddle) { this._eventBus = eventBus; @@ -21,11 +33,14 @@ export default function SubprocessCompatibility(eventBus, moddle) { var self = this; eventBus.on('import.render.start', 1500, function(e, context) { - self.handleImport(context.definitions); + self._handleImport(context.definitions); }); } -SubprocessCompatibility.prototype.handleImport = function(definitions) { +/** + * @param {ModdleElement} definitions + */ +SubprocessCompatibility.prototype._handleImport = function(definitions) { if (!definitions.diagrams) { return; } @@ -44,12 +59,12 @@ SubprocessCompatibility.prototype.handleImport = function(definitions) { var newDiagrams = []; definitions.diagrams.forEach(function(diagram) { - var createdDiagrams = self.createNewDiagrams(diagram.plane); + var createdDiagrams = self._createNewDiagrams(diagram.plane); Array.prototype.push.apply(newDiagrams, createdDiagrams); }); newDiagrams.forEach(function(diagram) { - self.movePlaneElementsToOrigin(diagram.plane); + self._movePlaneElementsToOrigin(diagram.plane); }); }; @@ -57,29 +72,30 @@ SubprocessCompatibility.prototype.handleImport = function(definitions) { /** * Moves all DI elements from collapsed subprocesses to a new plane. * - * @param {Object} plane - * @return {Array} new diagrams created for the collapsed subprocesses + * @param {CanvasPlane} plane + * + * @return {ModdleElement[]} new diagrams created for the collapsed subprocesses */ -SubprocessCompatibility.prototype.createNewDiagrams = function(plane) { +SubprocessCompatibility.prototype._createNewDiagrams = function(plane) { var self = this; var collapsedElements = []; var elementsToMove = []; plane.get('planeElement').forEach(function(diElement) { - var bo = diElement.bpmnElement; + var businessObject = diElement.bpmnElement; - if (!bo) { + if (!businessObject) { return; } - var parent = bo.$parent; + var parent = businessObject.$parent; - if (is(bo, 'bpmn:SubProcess') && !diElement.isExpanded) { - collapsedElements.push(bo); + if (is(businessObject, 'bpmn:SubProcess') && !diElement.isExpanded) { + collapsedElements.push(businessObject); } - if (shouldMoveToPlane(bo, plane)) { + if (shouldMoveToPlane(businessObject, plane)) { // don't change the array while we iterate over it elementsToMove.push({ diElement: diElement, parent: parent }); @@ -90,9 +106,11 @@ SubprocessCompatibility.prototype.createNewDiagrams = function(plane) { // create new planes for all collapsed subprocesses, even when they are empty collapsedElements.forEach(function(element) { - if (!self._processToDiagramMap[element.id]) { - var diagram = self.createDiagram(element); + if (!self._processToDiagramMap[ element.id ]) { + var diagram = self._createDiagram(element); + self._processToDiagramMap[element.id] = diagram; + newDiagrams.push(diagram); } }); @@ -111,14 +129,18 @@ SubprocessCompatibility.prototype.createNewDiagrams = function(plane) { return; } - var diagram = self._processToDiagramMap[parent.id]; - self.moveToDiPlane(diElement, diagram.plane); + var diagram = self._processToDiagramMap[ parent.id ]; + + self._moveToDiPlane(diElement, diagram.plane); }); return newDiagrams; }; -SubprocessCompatibility.prototype.movePlaneElementsToOrigin = function(plane) { +/** + * @param {CanvasPlane} plane + */ +SubprocessCompatibility.prototype._movePlaneElementsToOrigin = function(plane) { var elements = plane.get('planeElement'); // get bounding box of all elements @@ -142,33 +164,50 @@ SubprocessCompatibility.prototype.movePlaneElementsToOrigin = function(plane) { }); }; - -SubprocessCompatibility.prototype.moveToDiPlane = function(diElement, newPlane) { +/** + * @param {ModdleElement} diElement + * @param {CanvasPlane} newPlane + */ +SubprocessCompatibility.prototype._moveToDiPlane = function(diElement, newPlane) { var containingDiagram = findRootDiagram(diElement); // remove DI from old Plane and add it to the new one var parentPlaneElement = containingDiagram.plane.get('planeElement'); + parentPlaneElement.splice(parentPlaneElement.indexOf(diElement), 1); + newPlane.get('planeElement').push(diElement); }; +/** + * @param {ModdleElement} businessObject + * + * @return {ModdleElement} + */ +SubprocessCompatibility.prototype._createDiagram = function(businessObject) { + var plane = this._moddle.create('bpmndi:BPMNPlane', { + bpmnElement: businessObject + }); -SubprocessCompatibility.prototype.createDiagram = function(bo) { - var plane = this._moddle.create('bpmndi:BPMNPlane', { bpmnElement: bo }); var diagram = this._moddle.create('bpmndi:BPMNDiagram', { plane: plane }); + plane.$parent = diagram; - plane.bpmnElement = bo; + + plane.bpmnElement = businessObject; + diagram.$parent = this._definitions; + this._definitions.diagrams.push(diagram); + return diagram; }; SubprocessCompatibility.$inject = [ 'eventBus', 'moddle' ]; -// helpers ////////////////////////// +// helpers ////////// function findRootDiagram(element) { if (is(element, 'bpmndi:BPMNDiagram')) { @@ -178,6 +217,11 @@ function findRootDiagram(element) { } } +/** + * @param {CanvasPlane} plane + * + * @return {Rect} + */ function getPlaneBounds(plane) { var planeTrbl = { top: Infinity, @@ -200,8 +244,14 @@ function getPlaneBounds(plane) { return asBounds(planeTrbl); } -function shouldMoveToPlane(bo, plane) { - var parent = bo.$parent; +/** + * @param {ModdleElement} businessObject + * @param {CanvasPlane} plane + * + * @returns {boolean} + */ +function shouldMoveToPlane(businessObject, plane) { + var parent = businessObject.$parent; // don't move elements that are already on the plane if (!is(parent, 'bpmn:SubProcess') || parent === plane.bpmnElement) { @@ -210,7 +260,7 @@ function shouldMoveToPlane(bo, plane) { // dataAssociations are children of the subprocess but rendered on process level // cf. https://github.com/bpmn-io/bpmn-js/issues/1619 - if (isAny(bo, [ 'bpmn:DataInputAssociation', 'bpmn:DataOutputAssociation' ])) { + if (isAny(businessObject, [ 'bpmn:DataInputAssociation', 'bpmn:DataOutputAssociation' ])) { return false; } From 07f75f7cd5d2ef9934d7b32cccfee6d4f05b8fc6 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 13 Apr 2023 16:15:19 +0200 Subject: [PATCH 365/989] fix: fix remaining JSDoc and TS errors --- .../editor-actions/BpmnEditorActions.js | 4 + .../grid-snapping/BpmnGridSnapping.js | 7 + .../behavior/GridSnappingAutoPlaceBehavior.js | 17 +- .../GridSnappingLayoutConnectionBehavior.js | 28 +- .../GridSnappingParticipantBehavior.js | 12 +- .../BpmnInteractionEvents.js | 43 ++- lib/features/keyboard/BpmnKeyboardBindings.js | 5 + .../label-editing/LabelEditingPreview.js | 19 +- .../label-editing/LabelEditingProvider.js | 59 ++- .../behavior/util/ConnectionLayoutUtil.js | 4 +- .../modeling/behavior/util/LabelLayoutUtil.js | 10 +- .../modeling/behavior/util/LayoutUtil.js | 8 +- .../behavior/util/LineAttachmentUtil.js | 24 +- .../modeling/behavior/util/LineIntersect.js | 4 + .../modeling/cmd/UpdateCanvasRootHandler.js | 3 + .../modeling/cmd/UpdateFlowNodeRefsHandler.js | 4 + .../cmd/UpdateSemanticParentHandler.js | 4 + lib/features/ordering/BpmnOrderingProvider.js | 12 +- lib/features/palette/PaletteProvider.js | 28 +- .../popup-menu/ReplaceMenuProvider.js | 134 ++++--- lib/features/popup-menu/util/TypeUtil.js | 5 +- .../replace-preview/BpmnReplacePreview.js | 16 +- lib/features/replace/BpmnReplace.js | 110 ++++-- lib/features/replace/ReplaceOptions.js | 58 +++ lib/features/rules/BpmnRules.js | 343 +++++++++++++++--- lib/features/search/BpmnSearchProvider.js | 52 +-- lib/features/snapping/BpmnConnectSnapping.js | 54 ++- .../snapping/BpmnCreateMoveSnapping.js | 48 ++- lib/features/snapping/BpmnSnappingUtil.js | 12 + lib/features/space-tool/BpmnSpaceTool.js | 21 +- 30 files changed, 922 insertions(+), 226 deletions(-) diff --git a/lib/features/editor-actions/BpmnEditorActions.js b/lib/features/editor-actions/BpmnEditorActions.js index 049a8b6027..0af5410851 100644 --- a/lib/features/editor-actions/BpmnEditorActions.js +++ b/lib/features/editor-actions/BpmnEditorActions.js @@ -10,6 +10,10 @@ import { getBBox } from 'diagram-js/lib/util/Elements'; +/** + * @typedef {import('didi').Injector} Injector + */ + /** * Registers and executes BPMN specific editor actions. * diff --git a/lib/features/grid-snapping/BpmnGridSnapping.js b/lib/features/grid-snapping/BpmnGridSnapping.js index f18146d280..140d73f9f0 100644 --- a/lib/features/grid-snapping/BpmnGridSnapping.js +++ b/lib/features/grid-snapping/BpmnGridSnapping.js @@ -1,5 +1,12 @@ import { isAny } from '../modeling/util/ModelingUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + */ + +/** + * @param {EventBus} eventBus + */ export default function BpmnGridSnapping(eventBus) { eventBus.on([ 'create.init', diff --git a/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.js b/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.js index 89493a1c15..79c13c4592 100644 --- a/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.js +++ b/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.js @@ -3,9 +3,19 @@ import { getNewShapePosition } from '../../auto-place/BpmnAutoPlaceUtil'; import { getMid } from 'diagram-js/lib/layout/LayoutUtil'; import { is } from '../../../util/ModelUtil'; -var HIGH_PRIORITY = 2000; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/features/grid-snapping/GridSnapping').default} GridSnapping + * + * @typedef {import('diagram-js/lib/util/Types').Axis} Axis + */ +var HIGH_PRIORITY = 2000; +/** + * @param {EventBus} eventBus + * @param {GridSnapping} gridSnapping + */ export default function GridSnappingAutoPlaceBehavior(eventBus, gridSnapping) { eventBus.on('autoPlace', HIGH_PRIORITY, function(context) { var source = context.source, @@ -54,6 +64,11 @@ GridSnappingAutoPlaceBehavior.$inject = [ // helpers ////////// +/** + * @param {Axis} axis + * + * @return {boolean} + */ function isHorizontal(axis) { return axis === 'x'; } \ No newline at end of file diff --git a/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js b/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js index 48d184eca9..89352f68d8 100644 --- a/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js +++ b/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js @@ -8,11 +8,23 @@ import { assign } from 'min-dash'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/features/grid-snapping/GridSnapping').default} GridSnapping + * @typedef {import('../../modeling/Modeling').default} Modeling + * + * @typedef {import('diagram-js/lib/util/Types').Point} Point + */ + var HIGH_PRIORITY = 3000; /** * Snaps connections with Manhattan layout. + * + * @param {EventBus} eventBus + * @param {GridSnapping} gridSnapping + * @param {Modeling} modeling */ export default function GridSnappingLayoutConnectionBehavior(eventBus, gridSnapping, modeling) { CommandInterceptor.call(this, eventBus); @@ -53,9 +65,9 @@ inherits(GridSnappingLayoutConnectionBehavior, CommandInterceptor); /** * Snap middle segments of a given connection. * - * @param {Array} waypoints + * @param {Point[]} waypoints * - * @returns {Array} + * @return {Point[]} */ GridSnappingLayoutConnectionBehavior.prototype.snapMiddleSegments = function(waypoints) { var gridSnapping = this._gridSnapping, @@ -80,9 +92,9 @@ GridSnappingLayoutConnectionBehavior.prototype.snapMiddleSegments = function(way /** * Check whether a connection has a middle segments. * - * @param {Array} waypoints + * @param {Point[]} waypoints * - * @returns {boolean} + * @return {boolean} */ function hasMiddleSegments(waypoints) { return waypoints.length > 3; @@ -93,7 +105,7 @@ function hasMiddleSegments(waypoints) { * * @param {string} aligned * - * @returns {boolean} + * @return {boolean} */ function horizontallyAligned(aligned) { return aligned === 'h'; @@ -104,7 +116,7 @@ function horizontallyAligned(aligned) { * * @param {string} aligned * - * @returns {boolean} + * @return {boolean} */ function verticallyAligned(aligned) { return aligned === 'v'; @@ -113,9 +125,9 @@ function verticallyAligned(aligned) { /** * Get middle segments from a given connection. * - * @param {Array} waypoints + * @param {Point[]} waypoints * - * @returns {Array} + * @return {Point[]} */ function snapSegment(gridSnapping, segmentStart, segmentEnd) { diff --git a/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.js b/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.js index 48e6130a3c..98852fa0a5 100644 --- a/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.js +++ b/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.js @@ -1,8 +1,18 @@ import { is } from '../../../util/ModelUtil'; -var HIGHER_PRIORITY = 1750; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/features/grid-snapping/GridSnapping').default} GridSnapping + */ +var HIGHER_PRIORITY = 1750; +/** + * @param {Canvas} canvas + * @param {EventBus} eventBus + * @param {GridSnapping} gridSnapping + */ export default function GridSnappingParticipantBehavior(canvas, eventBus, gridSnapping) { eventBus.on([ 'create.start', diff --git a/lib/features/interaction-events/BpmnInteractionEvents.js b/lib/features/interaction-events/BpmnInteractionEvents.js index e4f09d6e29..0502aa4c5a 100644 --- a/lib/features/interaction-events/BpmnInteractionEvents.js +++ b/lib/features/interaction-events/BpmnInteractionEvents.js @@ -2,6 +2,14 @@ import { is } from '../../util/ModelUtil'; import { isExpanded } from '../../util/DiUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/features/interaction-events/InteractionEvents').default} InteractionEvents + * + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + */ + var LABEL_WIDTH = 30, LABEL_HEIGHT = 30; @@ -26,22 +34,22 @@ export default function BpmnInteractionEvents(eventBus, interactionEvents) { gfx = context.gfx; if (is(element, 'bpmn:Lane')) { - return self.createParticipantHit(element, gfx); + return self._createParticipantHit(element, gfx); } else if (is(element, 'bpmn:Participant')) { if (isExpanded(element)) { - return self.createParticipantHit(element, gfx); + return self._createParticipantHit(element, gfx); } else { - return self.createDefaultHit(element, gfx); + return self._createDefaultHit(element, gfx); } } else if (is(element, 'bpmn:SubProcess')) { if (isExpanded(element)) { - return self.createSubProcessHit(element, gfx); + return self._createSubProcessHit(element, gfx); } else { - return self.createDefaultHit(element, gfx); + return self._createDefaultHit(element, gfx); } } }); @@ -53,8 +61,13 @@ BpmnInteractionEvents.$inject = [ 'interactionEvents' ]; - -BpmnInteractionEvents.prototype.createDefaultHit = function(element, gfx) { +/** + * @param {BpmnElement} element + * @param {SVGElement} gfx + * + * @return {boolean} + */ +BpmnInteractionEvents.prototype._createDefaultHit = function(element, gfx) { this._interactionEvents.removeHits(gfx); this._interactionEvents.createDefaultHit(element, gfx); @@ -63,7 +76,13 @@ BpmnInteractionEvents.prototype.createDefaultHit = function(element, gfx) { return true; }; -BpmnInteractionEvents.prototype.createParticipantHit = function(element, gfx) { +/** + * @param {BpmnShape} element + * @param {SVGElement} gfx + * + * @return {boolean} + */ +BpmnInteractionEvents.prototype._createParticipantHit = function(element, gfx) { // remove existing hits this._interactionEvents.removeHits(gfx); @@ -90,7 +109,13 @@ BpmnInteractionEvents.prototype.createParticipantHit = function(element, gfx) { return true; }; -BpmnInteractionEvents.prototype.createSubProcessHit = function(element, gfx) { +/** + * @param {BpmnShape} element + * @param {SVGElement} gfx + * + * @return {boolean} + */ +BpmnInteractionEvents.prototype._createSubProcessHit = function(element, gfx) { // remove existing hits this._interactionEvents.removeHits(gfx); diff --git a/lib/features/keyboard/BpmnKeyboardBindings.js b/lib/features/keyboard/BpmnKeyboardBindings.js index 819f9be915..60236de7aa 100644 --- a/lib/features/keyboard/BpmnKeyboardBindings.js +++ b/lib/features/keyboard/BpmnKeyboardBindings.js @@ -2,6 +2,11 @@ import inherits from 'inherits-browser'; import KeyboardBindings from 'diagram-js/lib/features/keyboard/KeyboardBindings'; +/** + * @typedef {import('didi').Injector} Injector + * @typedef {import('diagram-js/lib/features/editor-actions/EditorActions').default} EditorActions + * @typedef {import('diagram-js/lib/features/keyboard/Keyboard').default} Keyboard + */ /** * BPMN 2.0 specific keyboard bindings. diff --git a/lib/features/label-editing/LabelEditingPreview.js b/lib/features/label-editing/LabelEditingPreview.js index 4ce2cf87cc..488efbc5e7 100644 --- a/lib/features/label-editing/LabelEditingPreview.js +++ b/lib/features/label-editing/LabelEditingPreview.js @@ -14,13 +14,21 @@ import { translate } from 'diagram-js/lib/util/SvgTransformUtil'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../../draw/PathMap').default} PathMap + */ + var MARKER_HIDDEN = 'djs-element-hidden', MARKER_LABEL_HIDDEN = 'djs-label-hidden'; - -export default function LabelEditingPreview( - eventBus, canvas, elementRegistry, - pathMap) { +/** + * @param {EventBus} eventBus + * @param {Canvas} canvas + * @param {PathMap} pathMap + */ +export default function LabelEditingPreview(eventBus, canvas, pathMap) { var self = this; @@ -124,12 +132,11 @@ export default function LabelEditingPreview( LabelEditingPreview.$inject = [ 'eventBus', 'canvas', - 'elementRegistry', 'pathMap' ]; -// helpers /////////////////// +// helpers ////////// function getStrokeColor(element, defaultColor) { var di = getDi(element); diff --git a/lib/features/label-editing/LabelEditingProvider.js b/lib/features/label-editing/LabelEditingProvider.js index 0ea82e28b0..25a3918c6e 100644 --- a/lib/features/label-editing/LabelEditingProvider.js +++ b/lib/features/label-editing/LabelEditingProvider.js @@ -20,9 +20,41 @@ import { isLabel } from '../../util/LabelUtil'; -var HIGH_PRIORITY = 2000; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('../modeling/BpmnFactory').default} BpmnFactory + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js-direct-editing/lib/DirectEditing').default} DirectEditing + * @typedef {import('../modeling/Modeling').default} Modeling + * @typedef {import('diagram-js/lib/features/resize/ResizeHandles').default} ResizeHandles + * @typedef {import('../../draw/TextRenderer').default} TextRenderer + * + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * + * @typedef { { + * bounds: { + * x: number; + * y: number; + * width: number; + * height: number; + * minWidth?: number; + * minHeight?: number; + * }; + * style: Object; + * } } DirectEditingContext + */ +var HIGH_PRIORITY = 2000; +/** + * @param {EventBus} eventBus + * @param {BpmnFactory} bpmnFactory + * @param {Canvas} canvas + * @param {DirectEditing} directEditing + * @param {Modeling} modeling + * @param {ResizeHandles} resizeHandles + * @param {TextRenderer} textRenderer + */ export default function LabelEditingProvider( eventBus, bpmnFactory, canvas, directEditing, modeling, resizeHandles, textRenderer) { @@ -48,8 +80,7 @@ export default function LabelEditingProvider( 'popupMenu.open', 'root.set', 'selection.changed' - ], function(event) { - + ], function() { if (directEditing.isActive()) { directEditing.complete(); } @@ -89,7 +120,7 @@ export default function LabelEditingProvider( // break for desworkflowediting on mobile devices // as it breaks the user interaction workflow - // TODO(nre): we should temporarily focus the edited element + // TODO(nikku): we should temporarily focus the edited element // here and release the focused viewport after the direct edit // operation is finished if (isTouch) { @@ -137,9 +168,16 @@ LabelEditingProvider.$inject = [ /** * Activate direct editing for activities and text annotations. * - * @param {djs.model.Base} element + * @param {BpmnElement} element * - * @return {Object} an object with properties bounds (position and size), text and options + * @return { { + * text: string; + * options?: { + * autoResize?: boolean; + * centerVertically?: boolean; + * resizable?: boolean; + * } + * } & DirectEditingContext } */ LabelEditingProvider.prototype.activate = function(element) { @@ -200,12 +238,11 @@ LabelEditingProvider.prototype.activate = function(element) { /** - * Get the editing bounding box based on the element's size and position + * Get the editing bounding box based on the element's size and position. * - * @param {djs.model.Base} element + * @param {BpmnElement} element * - * @return {Object} an object containing information about position - * and size (fixed or minimum and/or maximum) + * @return {DirectEditingContext} */ LabelEditingProvider.prototype.getEditingBBox = function(element) { var canvas = this._canvas; @@ -403,7 +440,7 @@ LabelEditingProvider.prototype.update = function( -// helpers ////////////////////// +// helpers ////////// function isCollapsedSubProcess(element) { return is(element, 'bpmn:SubProcess') && !isExpanded(element); diff --git a/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js b/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js index 90344dc37f..7d03b1f786 100644 --- a/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js +++ b/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js @@ -3,7 +3,7 @@ import { getAnchorPointAdjustment } from './LayoutUtil'; /** * @typedef {import('diagram-js/lib/util/Types').Point} Point * - * @typedef {import('./LayoutUtil').FindNewLintStartIndexHints} FindNewLintStartIndexHints + * @typedef {import('./LayoutUtil').FindNewLineStartIndexHints} FindNewLineStartIndexHints */ /** @@ -12,7 +12,7 @@ import { getAnchorPointAdjustment } from './LayoutUtil'; * @param {Point} position * @param {Point[]} newWaypoints * @param {Point[]} oldWaypoints - * @param {FindNewLintStartIndexHints} hints + * @param {FindNewLineStartIndexHints} hints * * @return {Point} */ diff --git a/lib/features/modeling/behavior/util/LabelLayoutUtil.js b/lib/features/modeling/behavior/util/LabelLayoutUtil.js index 8f7685840d..d97fb3e286 100644 --- a/lib/features/modeling/behavior/util/LabelLayoutUtil.js +++ b/lib/features/modeling/behavior/util/LabelLayoutUtil.js @@ -5,14 +5,18 @@ import { getMid } from 'diagram-js/lib/layout/LayoutUtil'; /** * @typedef {import('./LineAttachmentUtil').Attachment} Attachment * - * @typedef {import('./LayoutUtil').FindNewLintStartIndexHints} FindNewLintStartIndexHints + * @typedef {import('./LayoutUtil').FindNewLineStartIndexHints} FindNewLineStartIndexHints + * + * @typedef {import('../../../../model/Types').BpmnLabel} BpmnLabel + * + * @typedef {import('diagram-js/lib/util/Types').Point} Point */ /** * @param {Point[]} oldWaypoints * @param {Point[]} newWaypoints * @param {Attachment} attachment - * @param {FindNewLintStartIndexHints} hints + * @param {FindNewLineStartIndexHints} hints * * @return {number} */ @@ -27,7 +31,7 @@ export function findNewLabelLineStartIndex(oldWaypoints, newWaypoints, attachmen * @param {BpmnLabel} label * @param {Point[]} newWaypoints * @param {Point[]} oldWaypoints - * @param {FindNewLintStartIndexHints} hints + * @param {FindNewLineStartIndexHints} hints * * @return {Point} */ diff --git a/lib/features/modeling/behavior/util/LayoutUtil.js b/lib/features/modeling/behavior/util/LayoutUtil.js index 8e89c5b05c..584ac948e1 100644 --- a/lib/features/modeling/behavior/util/LayoutUtil.js +++ b/lib/features/modeling/behavior/util/LayoutUtil.js @@ -22,7 +22,7 @@ import { * delta: Point; * } } AnchorPointAdjustment * - * @param { { + * @typedef { { * segmentMove?: { * segmentStartIndex: number; * newSegmentStartIndex: number; @@ -33,14 +33,14 @@ import { * }; * connectionStart: boolean; * connectionEnd: boolean; -* } } FindNewLintStartIndexHints +* } } FindNewLineStartIndexHints */ /** * @param {Point[]} oldWaypoints * @param {Point[]} newWaypoints * @param {Attachment} attachment - * @param {FindNewLintStartIndexHints} hints + * @param {FindNewLineStartIndexHints} hints * * @return {number} */ @@ -131,7 +131,7 @@ export function findNewLineStartIndex(oldWaypoints, newWaypoints, attachment, hi * @param {Point} position * @param {Point[]} newWaypoints * @param {Point[]} oldWaypoints - * @param {FindNewLintStartIndexHints} hints + * @param {FindNewLineStartIndexHints} hints * * @return {AnchorPointAdjustment} result */ diff --git a/lib/features/modeling/behavior/util/LineAttachmentUtil.js b/lib/features/modeling/behavior/util/LineAttachmentUtil.js index e65623b52a..5e55807495 100644 --- a/lib/features/modeling/behavior/util/LineAttachmentUtil.js +++ b/lib/features/modeling/behavior/util/LineAttachmentUtil.js @@ -1,20 +1,20 @@ +/** + * @typedef {import('diagram-js/lib/util/Types').Point} Point + * + * @typedef { { +* type: 'bendpoint' | 'segment'; +* position: Point; +* segmentIndex: number; +* bendpointIndex?: number; +* relativeLocation?: number; +* } } Attachment +*/ + var sqrt = Math.sqrt, min = Math.min, max = Math.max, abs = Math.abs; -/** - * @typedef {import('../../../../util/Types').Point} Point - * - * @typedef { { - * type: 'bendpoint' | 'segment'; - * position: Point; - * segmentIndex: number; - * bendpointIndex?: number; - * relativeLocation?: number; - * } } Attachment - */ - /** * Calculate the square (power to two) of a number. * diff --git a/lib/features/modeling/behavior/util/LineIntersect.js b/lib/features/modeling/behavior/util/LineIntersect.js index a26f920dbf..258678fbbb 100644 --- a/lib/features/modeling/behavior/util/LineIntersect.js +++ b/lib/features/modeling/behavior/util/LineIntersect.js @@ -1,3 +1,7 @@ +/** + * @typedef {import('diagram-js/lib/util/Types').Point} Point + */ + /** * Returns the intersection between two line segments a and b. * diff --git a/lib/features/modeling/cmd/UpdateCanvasRootHandler.js b/lib/features/modeling/cmd/UpdateCanvasRootHandler.js index f7b62e0852..897b2fc0a2 100644 --- a/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +++ b/lib/features/modeling/cmd/UpdateCanvasRootHandler.js @@ -61,6 +61,7 @@ UpdateCanvasRootHandler.prototype.execute = function(context) { // TODO(nikku): return changed elements? // return [ newRoot, oldRoot ]; + return []; }; @@ -94,4 +95,6 @@ UpdateCanvasRootHandler.prototype.revert = function(context) { // TODO(nikku): return changed elements? // return [ newRoot, oldRoot ]; + + return []; }; \ No newline at end of file diff --git a/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js b/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js index ad23fd3ed5..42858b7f28 100644 --- a/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +++ b/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js @@ -184,6 +184,8 @@ UpdateFlowNodeRefsHandler.prototype.execute = function(context) { // TODO(nikku): return changed elements // return [ ... ]; + + return []; }; @@ -211,4 +213,6 @@ UpdateFlowNodeRefsHandler.prototype.revert = function(context) { // TODO(nikku): return changed elements // return [ ... ]; + + return []; }; diff --git a/lib/features/modeling/cmd/UpdateSemanticParentHandler.js b/lib/features/modeling/cmd/UpdateSemanticParentHandler.js index 4060048371..b47bb75db0 100644 --- a/lib/features/modeling/cmd/UpdateSemanticParentHandler.js +++ b/lib/features/modeling/cmd/UpdateSemanticParentHandler.js @@ -30,6 +30,8 @@ UpdateSemanticParentHandler.prototype.execute = function(context) { // update DI parent this._bpmnUpdater.updateDiParent(dataStoreDi, newDiParent); + + return []; }; UpdateSemanticParentHandler.prototype.revert = function(context) { @@ -43,5 +45,7 @@ UpdateSemanticParentHandler.prototype.revert = function(context) { // update DI parent this._bpmnUpdater.updateDiParent(dataStoreDi, oldDiParent); + + return []; }; diff --git a/lib/features/ordering/BpmnOrderingProvider.js b/lib/features/ordering/BpmnOrderingProvider.js index b290668474..ff144231af 100644 --- a/lib/features/ordering/BpmnOrderingProvider.js +++ b/lib/features/ordering/BpmnOrderingProvider.js @@ -11,12 +11,18 @@ import { find } from 'min-dash'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/i18n/translate/translate').default} Translate + */ /** - * a simple ordering provider that makes sure: + * A BPMN-specific ordering provider. * - * (0) labels and groups are rendered always on top - * (1) elements are ordered by a {level} property + * @param {EventBus} eventBus + * @param {Canvas} canvas + * @param {Translate} translate */ export default function BpmnOrderingProvider(eventBus, canvas, translate) { diff --git a/lib/features/palette/PaletteProvider.js b/lib/features/palette/PaletteProvider.js index 198a45260d..243ae03f7c 100644 --- a/lib/features/palette/PaletteProvider.js +++ b/lib/features/palette/PaletteProvider.js @@ -1,11 +1,33 @@ import { assign } from 'min-dash'; + import { getDi } from '../../util/ModelUtil'; +/** + * @typedef {import('diagram-js/lib/features/palette/Palette').default} Palette + * @typedef {import('diagram-js/lib/features/create/Create').default} Create + * @typedef {import('diagram-js/lib/core/ElementFactory').default} ElementFactory + * @typedef {import('../space-tool/BpmnSpaceTool').default} SpaceTool + * @typedef {import('diagram-js/lib/features/lasso-tool/LassoTool').default} LassoTool + * @typedef {import('diagram-js/lib/features/hand-tool/HandTool').default} HandTool + * @typedef {import('diagram-js/lib/features/global-connect/GlobalConnect').default} GlobalConnect + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + * + * @typedef {import('diagram-js/lib/features/palette/Palette').PaletteEntries} PaletteEntries + */ /** * A palette provider for BPMN 2.0 elements. + * + * @param {Palette} palette + * @param {Create} create + * @param {ElementFactory} elementFactory + * @param {SpaceTool} spaceTool + * @param {LassoTool} lassoTool + * @param {HandTool} handTool + * @param {GlobalConnect} globalConnect + * @param {Translate} translate */ export default function PaletteProvider( palette, create, elementFactory, @@ -35,8 +57,10 @@ PaletteProvider.$inject = [ 'translate' ]; - -PaletteProvider.prototype.getPaletteEntries = function(element) { +/** + * @return {PaletteEntries} + */ +PaletteProvider.prototype.getPaletteEntries = function() { var actions = {}, create = this._create, diff --git a/lib/features/popup-menu/ReplaceMenuProvider.js b/lib/features/popup-menu/ReplaceMenuProvider.js index 5432e1cf79..c454133aff 100644 --- a/lib/features/popup-menu/ReplaceMenuProvider.js +++ b/lib/features/popup-menu/ReplaceMenuProvider.js @@ -20,9 +20,37 @@ import { import * as replaceOptions from '../replace/ReplaceOptions'; +/** + * @typedef {import('../features/BpmnFactory').default} BpmnFactory + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').default} PopupMenu + * @typedef {import('../features/Modeling').default} Modeling + * @typedef {import('../features/BpmnReplace').default} BpmnReplace + * @typedef {import('diagram-js/lib/features/Rules').default} Rules + * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate + * + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').Moddle} Moddle + * + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').PopupMenuEntries} PopupMenuEntries + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').PopupMenuHeaderEntries} PopupMenuHeaderEntries + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').default} PopupMenuProvider + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').PopupMenuTarget} PopupMenuTarget + * + * @typedef {import('./ReplaceOptions').ReplaceOption} ReplaceOption + */ /** - * This module is an element agnostic replace menu provider for the popup menu. + * A BPMN-specific popup menu provider. + * + * @implements {PopupMenuProvider} + * + * @param {BpmnFactory} bpmnFactory + * @param {PopupMenu} popupMenu + * @param {Modeling} modeling + * @param {Moddle} moddle + * @param {BpmnReplace} bpmnReplace + * @param {Rules} rules + * @param {Translate} translate */ export default function ReplaceMenuProvider( bpmnFactory, popupMenu, modeling, moddle, @@ -49,43 +77,35 @@ ReplaceMenuProvider.$inject = [ 'translate' ]; - -/** - * Register replace menu provider in the popup menu - */ ReplaceMenuProvider.prototype.register = function() { this._popupMenu.registerProvider('bpmn-replace', this); }; - /** - * Get all entries from replaceOptions for the given element and apply filters - * on them. Get for example only elements, which are different from the current one. + * @param {PopupMenuTarget} target * - * @param {djs.model.Base} element - * - * @return {Array} a list of menu entry items + * @returns {PopupMenuEntries} */ -ReplaceMenuProvider.prototype.getEntries = function(element) { +ReplaceMenuProvider.prototype.getPopupMenuEntries = function(target) { - var businessObject = element.businessObject; + var businessObject = target.businessObject; var rules = this._rules; var entries; - if (!rules.allowed('shape.replace', { element: element })) { + if (!rules.allowed('shape.replace', { element: target })) { return []; } - var differentType = isDifferentType(element); + var differentType = isDifferentType(target); if (is(businessObject, 'bpmn:DataObjectReference')) { - return this._createEntries(element, replaceOptions.DATA_OBJECT_REFERENCE); + return this._createEntries(target, replaceOptions.DATA_OBJECT_REFERENCE); } - if (is(businessObject, 'bpmn:DataStoreReference') && !is(element.parent, 'bpmn:Collaboration')) { - return this._createEntries(element, replaceOptions.DATA_STORE_REFERENCE); + if (is(businessObject, 'bpmn:DataStoreReference') && !is(target.parent, 'bpmn:Collaboration')) { + return this._createEntries(target, replaceOptions.DATA_STORE_REFERENCE); } // start events outside sub processes @@ -93,17 +113,17 @@ ReplaceMenuProvider.prototype.getEntries = function(element) { entries = filter(replaceOptions.START_EVENT, differentType); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // expanded/collapsed pools if (is(businessObject, 'bpmn:Participant')) { entries = filter(replaceOptions.PARTICIPANT, function(entry) { - return isExpanded(element) !== entry.target.isExpanded; + return isExpanded(target) !== entry.target.isExpanded; }); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // start events inside event sub processes @@ -114,14 +134,14 @@ ReplaceMenuProvider.prototype.getEntries = function(element) { var isInterrupting = target.isInterrupting !== false; - var isInterruptingEqual = getBusinessObject(element).isInterrupting === isInterrupting; + var isInterruptingEqual = getBusinessObject(target).isInterrupting === isInterrupting; // filters elements which types and event definition are equal but have have different interrupting types return differentType(entry) || !differentType(entry) && !isInterruptingEqual; }); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // start events inside sub processes @@ -129,7 +149,7 @@ ReplaceMenuProvider.prototype.getEntries = function(element) { && is(businessObject.$parent, 'bpmn:SubProcess')) { entries = filter(replaceOptions.START_EVENT_SUB_PROCESS, differentType); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // end events @@ -146,7 +166,7 @@ ReplaceMenuProvider.prototype.getEntries = function(element) { return differentType(entry); }); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // boundary events @@ -167,7 +187,7 @@ ReplaceMenuProvider.prototype.getEntries = function(element) { return differentType(entry) || !differentType(entry) && !isCancelActivityEqual; }); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // intermediate events @@ -176,7 +196,7 @@ ReplaceMenuProvider.prototype.getEntries = function(element) { entries = filter(replaceOptions.INTERMEDIATE_EVENT, differentType); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // gateways @@ -184,7 +204,7 @@ ReplaceMenuProvider.prototype.getEntries = function(element) { entries = filter(replaceOptions.GATEWAY, differentType); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // transactions @@ -192,27 +212,27 @@ ReplaceMenuProvider.prototype.getEntries = function(element) { entries = filter(replaceOptions.TRANSACTION, differentType); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // expanded event sub processes - if (isEventSubProcess(businessObject) && isExpanded(element)) { + if (isEventSubProcess(businessObject) && isExpanded(target)) { entries = filter(replaceOptions.EVENT_SUB_PROCESS, differentType); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // expanded sub processes - if (is(businessObject, 'bpmn:SubProcess') && isExpanded(element)) { + if (is(businessObject, 'bpmn:SubProcess') && isExpanded(target)) { entries = filter(replaceOptions.SUBPROCESS_EXPANDED, differentType); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // collapsed ad hoc sub processes - if (is(businessObject, 'bpmn:AdHocSubProcess') && !isExpanded(element)) { + if (is(businessObject, 'bpmn:AdHocSubProcess') && !isExpanded(target)) { entries = filter(replaceOptions.TASK, function(entry) { @@ -222,15 +242,15 @@ ReplaceMenuProvider.prototype.getEntries = function(element) { var isTargetExpanded = target.isExpanded === true; - return isDifferentType(element, target) && (!isTargetSubProcess || isTargetExpanded); + return isDifferentType(target, target) && (!isTargetSubProcess || isTargetExpanded); }); - return this._createEntries(element, entries); + return this._createEntries(target, entries); } // sequence flows if (is(businessObject, 'bpmn:SequenceFlow')) { - return this._createSequenceFlowEntries(element, replaceOptions.SEQUENCE_FLOW); + return this._createSequenceFlowEntries(target, replaceOptions.SEQUENCE_FLOW); } // flow nodes @@ -238,47 +258,43 @@ ReplaceMenuProvider.prototype.getEntries = function(element) { entries = filter(replaceOptions.TASK, differentType); // collapsed SubProcess can not be replaced with itself - if (is(businessObject, 'bpmn:SubProcess') && !isExpanded(element)) { + if (is(businessObject, 'bpmn:SubProcess') && !isExpanded(target)) { entries = filter(entries, function(entry) { return entry.label !== 'Sub Process (collapsed)'; }); } - return this._createEntries(element, entries); + return this._createEntries(target, entries); } return []; }; - /** - * Get a list of header items for the given element. This includes buttons - * for multi instance markers and for the ad hoc marker. + * @param {PopupMenuTarget} target * - * @param {djs.model.Base} element - * - * @return {Array} a list of menu entry items + * @returns {PopupMenuHeaderEntries} */ -ReplaceMenuProvider.prototype.getHeaderEntries = function(element) { +ReplaceMenuProvider.prototype.getHeaderEntries = function(target) { var headerEntries = []; - if (is(element, 'bpmn:Activity') && !isEventSubProcess(element)) { - headerEntries = headerEntries.concat(this._getLoopEntries(element)); + if (is(target, 'bpmn:Activity') && !isEventSubProcess(target)) { + headerEntries = headerEntries.concat(this._getLoopEntries(target)); } - if (is(element, 'bpmn:DataObjectReference')) { - headerEntries = headerEntries.concat(this._getDataObjectIsCollection(element)); + if (is(target, 'bpmn:DataObjectReference')) { + headerEntries = headerEntries.concat(this._getDataObjectIsCollection(target)); } - if (is(element, 'bpmn:Participant')) { - headerEntries = headerEntries.concat(this._getParticipantMultiplicity(element)); + if (is(target, 'bpmn:Participant')) { + headerEntries = headerEntries.concat(this._getParticipantMultiplicity(target)); } - if (is(element, 'bpmn:SubProcess') && - !is(element, 'bpmn:Transaction') && - !isEventSubProcess(element)) { - headerEntries.push(this._getAdHocEntry(element)); + if (is(target, 'bpmn:SubProcess') && + !is(target, 'bpmn:Transaction') && + !isEventSubProcess(target)) { + headerEntries.push(this._getAdHocEntry(target)); } return headerEntries; @@ -289,10 +305,10 @@ ReplaceMenuProvider.prototype.getHeaderEntries = function(element) { * Creates an array of menu entry objects for a given element and filters the replaceOptions * according to a filter function. * - * @param {djs.model.Base} element - * @param {Object} replaceOptions + * @param {BpmnElement} element + * @param {ReplaceOption[]} replaceOptions * - * @return {Array} a list of menu items + * @return {PopupMenuEntries} */ ReplaceMenuProvider.prototype._createEntries = function(element, replaceOptions) { var menuEntries = []; diff --git a/lib/features/popup-menu/util/TypeUtil.js b/lib/features/popup-menu/util/TypeUtil.js index abe60602d7..98f4eecc89 100644 --- a/lib/features/popup-menu/util/TypeUtil.js +++ b/lib/features/popup-menu/util/TypeUtil.js @@ -6,13 +6,16 @@ import { isExpanded } from '../../../util/DiUtil'; +/** + * @typedef {import('../../../model/Types').BpmnElement} BpmnElement + */ /** * Returns true, if an element is from a different type * than a target definition. Takes into account the type, * event definition type and triggeredByEvent property. * - * @param {djs.model.Base} element + * @param {BpmnElement} element * * @return {boolean} */ diff --git a/lib/features/replace-preview/BpmnReplacePreview.js b/lib/features/replace-preview/BpmnReplacePreview.js index 1b3f20a024..eb8c237391 100644 --- a/lib/features/replace-preview/BpmnReplacePreview.js +++ b/lib/features/replace-preview/BpmnReplacePreview.js @@ -17,9 +17,23 @@ import { attr as svgAttr } from 'tiny-svg'; -var LOW_PRIORITY = 250; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * @typedef {import('diagram-js/lib/core/ElementFactory').default} ElementFactory + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/features/preview-support/PreviewSupport').default} PreviewSupport + */ +var LOW_PRIORITY = 250; +/** + * @param {EventBus} eventBus + * @param {ElementRegistry} elementRegistry + * @param {ElementFactory} elementFactory + * @param {Canvas} canvas + * @param {PreviewSupport} previewSupport + */ export default function BpmnReplacePreview( eventBus, elementRegistry, elementFactory, canvas, previewSupport) { diff --git a/lib/features/replace/BpmnReplace.js b/lib/features/replace/BpmnReplace.js index 9c0fb47320..a3937ca9c2 100644 --- a/lib/features/replace/BpmnReplace.js +++ b/lib/features/replace/BpmnReplace.js @@ -24,6 +24,37 @@ import { import { getPropertyNames } from '../copy-paste/ModdleCopy'; +/** + * @typedef {import('../modeling/BpmnFactory').default} BpmnFactory + * @typedef {import('../modeling/ElementFactory').default} ElementFactory + * @typedef {import('../copy-paste/ModdleCopy').default} ModdleCopy + * @typedef {import('../modeling/Modeling').default} Modeling + * @typedef {import('diagram-js/lib/features/replace/Replace').default} Replace + * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules + * + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').ModdleElement} ModdleElement + * + * @typedef { { + * type: string; + * cancelActivity: boolean; + * instantiate: boolean; + * eventGatewayType: string; + * triggeredByEvent: boolean; + * isInterrupting: boolean; + * collapsed: boolean; + * isExpanded: boolean; + * eventDefinitionType: string; + * eventDefinitionAttrs: Object; + * host: BpmnShape; + * } } TargetElement + * + * @typedef { { + * moveChildren: boolean; + * } & Record } Hints + */ + function copyProperties(source, target, properties) { if (!isArray(properties)) { properties = [ properties ]; @@ -77,7 +108,14 @@ function shouldToggleCollapsed(element, targetElement) { /** - * This module takes care of replacing BPMN elements + * BPMN-specific replace. + * + * @param {BpmnFactory} bpmnFactory + * @param {ElementFactory} elementFactory + * @param {ModdleCopy} moddleCopy + * @param {Modeling} modeling + * @param {Replace} replace + * @param {Rules} rules */ export default function BpmnReplace( bpmnFactory, @@ -92,21 +130,21 @@ export default function BpmnReplace( * Prepares a new business object for the replacement element * and triggers the replace operation. * - * @param {djs.model.Base} element - * @param {Object} target - * @param {Object} [hints] + * @param {BpmnElement} element + * @param {TargetElement} targetElement + * @param {Hints} [hints] * - * @return {djs.model.Base} the newly created element + * @return {BpmnElement} */ - function replaceElement(element, target, hints) { + function replaceElement(element, targetElement, hints) { hints = hints || {}; - var type = target.type, + var type = targetElement.type, oldBusinessObject = element.businessObject; if (isSubProcess(oldBusinessObject) && type === 'bpmn:SubProcess') { - if (shouldToggleCollapsed(element, target)) { + if (shouldToggleCollapsed(element, targetElement)) { // expanding or collapsing process modeling.toggleCollapse(element); @@ -138,13 +176,13 @@ export default function BpmnReplace( copyProps = intersection(elementProps, newElementProps); // initialize special properties defined in target definition - assign(newBusinessObject, pick(target, CUSTOM_PROPERTIES)); + assign(newBusinessObject, pick(targetElement, CUSTOM_PROPERTIES)); var properties = filter(copyProps, function(propertyName) { // copying event definitions, unless we replace if (propertyName === 'eventDefinitions') { - return hasEventDefinition(element, target.eventDefinitionType); + return hasEventDefinition(element, targetElement.eventDefinitionType); } // retain loop characteristics if the target element @@ -158,7 +196,7 @@ export default function BpmnReplace( return false; } - if (propertyName === 'processRef' && target.isExpanded === false) { + if (propertyName === 'processRef' && targetElement.isExpanded === false) { return false; } @@ -176,14 +214,14 @@ export default function BpmnReplace( ); // initialize custom BPMN extensions - if (target.eventDefinitionType) { + if (targetElement.eventDefinitionType) { // only initialize with new eventDefinition // if we did not set an event definition yet, // i.e. because we copied it - if (!hasEventDefinition(newBusinessObject, target.eventDefinitionType)) { - newElement.eventDefinitionType = target.eventDefinitionType; - newElement.eventDefinitionAttrs = target.eventDefinitionAttrs; + if (!hasEventDefinition(newBusinessObject, targetElement.eventDefinitionType)) { + newElement.eventDefinitionType = targetElement.eventDefinitionType; + newElement.eventDefinitionAttrs = targetElement.eventDefinitionAttrs; } } @@ -196,8 +234,8 @@ export default function BpmnReplace( } // else if property is explicitly set, use it - else if (target && has(target, 'isExpanded')) { - newElement.isExpanded = target.isExpanded; + else if (targetElement && has(targetElement, 'isExpanded')) { + newElement.isExpanded = targetElement.isExpanded; // assign default size of new expanded element var defaultSize = elementFactory.getDefaultSize(newBusinessObject, { @@ -230,7 +268,7 @@ export default function BpmnReplace( if (is(oldBusinessObject, 'bpmn:Participant')) { // create expanded pool - if (target.isExpanded === true) { + if (targetElement.isExpanded === true) { newBusinessObject.processRef = bpmnFactory.create('bpmn:Process'); } else { @@ -267,11 +305,11 @@ export default function BpmnReplace( } if ( - target.host && + targetElement.host && !is(oldBusinessObject, 'bpmn:BoundaryEvent') && is(newBusinessObject, 'bpmn:BoundaryEvent') ) { - newElement.host = target.host; + newElement.host = targetElement.host; } // The DataStoreReference element is 14px wider than the DataObjectReference element @@ -298,25 +336,39 @@ BpmnReplace.$inject = [ 'rules' ]; - -function isSubProcess(bo) { - return is(bo, 'bpmn:SubProcess'); +/** + * @param {ModdleElement} businessObject + * + * @returns {boolean} + */ +function isSubProcess(businessObject) { + return is(businessObject, 'bpmn:SubProcess'); } +/** + * @param {BpmnElement|ModdleElement} element + * @param {string} type + * + * @return {boolean} + */ function hasEventDefinition(element, type) { + var businessObject = getBusinessObject(element); - var bo = getBusinessObject(element); - - return type && bo.get('eventDefinitions').some(function(definition) { + return type && businessObject.get('eventDefinitions').some(function(definition) { return is(definition, type); }); } /** * Compute intersection between two arrays. + * + * @param {Array} a + * @param {Array} b + * + * @return {Array} */ -function intersection(a1, a2) { - return a1.filter(function(el) { - return a2.indexOf(el) !== -1; +function intersection(a, b) { + return a.filter(function(item) { + return b.includes(item); }); } diff --git a/lib/features/replace/ReplaceOptions.js b/lib/features/replace/ReplaceOptions.js index 23052a20ec..1ecb5b1df4 100644 --- a/lib/features/replace/ReplaceOptions.js +++ b/lib/features/replace/ReplaceOptions.js @@ -1,3 +1,19 @@ +/** + * @typedef { { + * label: string; + * actionName: string; + * className: string; + * target: { + * type: string; + * isExpanded?: boolean; + * eventDefinitionType: string; + * }; + * } } ReplaceOption + */ + +/** + * @type {ReplaceOption[]} + */ export var START_EVENT = [ { label: 'Start Event', @@ -61,6 +77,9 @@ export var START_EVENT = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var START_EVENT_SUB_PROCESS = [ { label: 'Start Event', @@ -88,6 +107,9 @@ export var START_EVENT_SUB_PROCESS = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var INTERMEDIATE_EVENT = [ { label: 'Start Event', @@ -211,6 +233,9 @@ export var INTERMEDIATE_EVENT = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var END_EVENT = [ { label: 'Start Event', @@ -301,6 +326,9 @@ export var END_EVENT = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var GATEWAY = [ { label: 'Exclusive Gateway', @@ -370,6 +398,9 @@ export var GATEWAY = [ // } ]; +/** + * @type {ReplaceOption[]} + */ export var SUBPROCESS_EXPANDED = [ { label: 'Transaction', @@ -401,6 +432,9 @@ export var SUBPROCESS_EXPANDED = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var TRANSACTION = [ { label: 'Transaction', @@ -432,8 +466,14 @@ export var TRANSACTION = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var EVENT_SUB_PROCESS = TRANSACTION; +/** + * @type {ReplaceOption[]} + */ export var TASK = [ { label: 'Task', @@ -527,6 +567,9 @@ export var TASK = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var DATA_OBJECT_REFERENCE = [ { label: 'Data Store Reference', @@ -538,6 +581,9 @@ export var DATA_OBJECT_REFERENCE = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var DATA_STORE_REFERENCE = [ { label: 'Data Object Reference', @@ -549,6 +595,9 @@ export var DATA_STORE_REFERENCE = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var BOUNDARY_EVENT = [ { label: 'Message Boundary Event', @@ -674,6 +723,9 @@ export var BOUNDARY_EVENT = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var EVENT_SUB_PROCESS_START_EVENT = [ { label: 'Message Start Event', @@ -790,6 +842,9 @@ export var EVENT_SUB_PROCESS_START_EVENT = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var SEQUENCE_FLOW = [ { label: 'Sequence Flow', @@ -808,6 +863,9 @@ export var SEQUENCE_FLOW = [ } ]; +/** + * @type {ReplaceOption[]} + */ export var PARTICIPANT = [ { label: 'Expanded Pool', diff --git a/lib/features/rules/BpmnRules.js b/lib/features/rules/BpmnRules.js index 6b252bdd0c..c69b2f2e34 100644 --- a/lib/features/rules/BpmnRules.js +++ b/lib/features/rules/BpmnRules.js @@ -36,9 +36,32 @@ import { getBoundaryAttachment as isBoundaryAttachment } from '../snapping/BpmnSnappingUtil'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * + * @typedef {import('../../model/Types').BpmnConnection} BpmnConnection + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').ModdleElement} ModdleElement + * + * @typedef {import('diagram-js/lib/util/Types').Point} Point + * @typedef {import('diagram-js/lib/util/Types').Rect} Rect + * + * @typedef { { + * associationDirection?: string; + * type: string; + * } | boolean | null } CanConnectResult + * + * @typedef { { + * id: string; + * type: string; + * } | boolean } CanReplaceResult + */ /** - * BPMN specific modeling rule + * BPMN-specific modeling rules. + * + * @param {EventBus} eventBus */ export default function BpmnRules(eventBus) { RuleProvider.call(this, eventBus); @@ -204,7 +227,8 @@ BpmnRules.prototype.canCopy = canCopy; /** * Checks if given element can be used for starting connection. * - * @param {Element} source + * @param {BpmnElement} source + * * @return {boolean} */ function canStartConnection(element) { @@ -222,6 +246,11 @@ function canStartConnection(element) { ]); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function nonExistingOrLabel(element) { return !element || isLabel(element); } @@ -230,6 +259,11 @@ function isSame(a, b) { return a === b; } +/** + * @param {BpmnElement} element + * + * @return {ModdleElement} + */ function getOrganizationalParent(element) { do { @@ -247,23 +281,49 @@ function getOrganizationalParent(element) { } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isTextAnnotation(element) { return is(element, 'bpmn:TextAnnotation'); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isGroup(element) { return is(element, 'bpmn:Group') && !element.labelTarget; } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isCompensationBoundary(element) { return is(element, 'bpmn:BoundaryEvent') && hasEventDefinition(element, 'bpmn:CompensateEventDefinition'); } -function isForCompensation(e) { - return getBusinessObject(e).isForCompensation; +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ +function isForCompensation(element) { + return getBusinessObject(element).isForCompensation; } +/** + * @param {BpmnElement} a + * @param {BpmnElement} b + * + * @return {boolean} + */ function isSameOrganization(a, b) { var parentA = getOrganizationalParent(a), parentB = getOrganizationalParent(b); @@ -271,6 +331,11 @@ function isSameOrganization(a, b) { return parentA === parentB; } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isMessageFlowSource(element) { return ( is(element, 'bpmn:InteractionNode') && @@ -283,6 +348,11 @@ function isMessageFlowSource(element) { ); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isMessageFlowTarget(element) { return ( is(element, 'bpmn:InteractionNode') && @@ -298,6 +368,11 @@ function isMessageFlowTarget(element) { ); } +/** + * @param {BpmnElement} element + * + * @return {ModdleElement} + */ function getScopeParent(element) { var parent = element; @@ -316,6 +391,12 @@ function getScopeParent(element) { return null; } +/** + * @param {BpmnElement} a + * @param {BpmnElement} b + * + * @return {boolean} + */ function isSameScope(a, b) { var scopeParentA = getScopeParent(a), scopeParentB = getScopeParent(b); @@ -323,22 +404,39 @@ function isSameScope(a, b) { return scopeParentA === scopeParentB; } +/** + * @param {BpmnElement} element + * @param {string} eventDefinition + * + * @return {boolean} + */ function hasEventDefinition(element, eventDefinition) { - var bo = getBusinessObject(element); + var businessObject = getBusinessObject(element); - return !!find(bo.eventDefinitions || [], function(definition) { + return !!find(businessObject.eventDefinitions || [], function(definition) { return is(definition, eventDefinition); }); } +/** + * @param {BpmnElement} element + * @param {string} eventDefinition + * + * @return {boolean} + */ function hasEventDefinitionOrNone(element, eventDefinition) { - var bo = getBusinessObject(element); + var businessObject = getBusinessObject(element); - return (bo.eventDefinitions || []).every(function(definition) { + return (businessObject.eventDefinitions || []).every(function(definition) { return is(definition, eventDefinition); }); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isSequenceFlowSource(element) { return ( is(element, 'bpmn:FlowNode') && @@ -352,6 +450,11 @@ function isSequenceFlowSource(element) { ); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isSequenceFlowTarget(element) { return ( is(element, 'bpmn:FlowNode') && @@ -365,6 +468,11 @@ function isSequenceFlowTarget(element) { ); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isEventBasedTarget(element) { return ( is(element, 'bpmn:ReceiveTask') || ( @@ -378,10 +486,20 @@ function isEventBasedTarget(element) { ); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isConnection(element) { return element.waypoints; } +/** + * @param {BpmnElement} element + * + * @return {BpmnShape[]} + */ function getParents(element) { var parents = []; @@ -397,11 +515,25 @@ function getParents(element) { return parents; } +/** + * @param {BpmnShape} possibleParent + * @param {BpmnElement} element + * + * @return {boolean} + */ function isParent(possibleParent, element) { var allParents = getParents(element); + return allParents.indexOf(possibleParent) !== -1; } +/** + * @param {BpmnElement} source + * @param {BpmnElement} target + * @param {BpmnConnection} connection + * + * @return {CanConnectResult} + */ function canConnect(source, target, connection) { if (nonExistingOrLabel(source) || nonExistingOrLabel(target)) { @@ -443,11 +575,14 @@ function canConnect(source, target, connection) { } /** - * Can an element be dropped into the target element + * Can an element be dropped into the target element. + * + * @param {BpmnElement} element + * @param {BpmnShape} target * * @return {boolean} */ -function canDrop(element, target, position) { +function canDrop(element, target) { // can move labels and groups everywhere if (isLabel(element) || isGroup(element)) { @@ -523,23 +658,41 @@ function canDrop(element, target, position) { return false; } +/** + * @param {BpmnShape} event + * + * @return {boolean} + */ function isDroppableBoundaryEvent(event) { return getBusinessObject(event).cancelActivity && ( hasNoEventDefinition(event) || hasCommonBoundaryIntermediateEventDefinition(event) ); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isBoundaryEvent(element) { return !isLabel(element) && is(element, 'bpmn:BoundaryEvent'); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isLane(element) { return is(element, 'bpmn:Lane'); } /** - * We treat IntermediateThrowEvents as boundary events during create, - * this must be reflected in the rules. + * `bpmn:IntermediateThrowEvents` are treated as boundary events during create. + * + * @param {BpmnElement} element + * + * @return {boolean} */ function isBoundaryCandidate(element) { if (isBoundaryEvent(element)) { @@ -556,12 +709,22 @@ function isBoundaryCandidate(element) { ); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function hasNoEventDefinition(element) { - var bo = getBusinessObject(element); + var businessObject = getBusinessObject(element); - return bo && !(bo.eventDefinitions && bo.eventDefinitions.length); + return businessObject && !(businessObject.eventDefinitions && businessObject.eventDefinitions.length); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function hasCommonBoundaryIntermediateEventDefinition(element) { return hasOneOfEventDefinitions(element, [ 'bpmn:MessageEventDefinition', @@ -571,12 +734,23 @@ function hasCommonBoundaryIntermediateEventDefinition(element) { ]); } +/** + * @param {BpmnElement} element + * @param {string[]} eventDefinitions + * + * @return {boolean} + */ function hasOneOfEventDefinitions(element, eventDefinitions) { return eventDefinitions.some(function(definition) { return hasEventDefinition(element, definition); }); } +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isReceiveTaskAfterEventBasedGateway(element) { return ( is(element, 'bpmn:ReceiveTask') && @@ -586,7 +760,16 @@ function isReceiveTaskAfterEventBasedGateway(element) { ); } - +/** + * TODO(philippfromme): remove `source` parameter + * + * @param {BpmnElement[]} elements + * @param {BpmnShape} target + * @param {BpmnElement} source + * @param {Point} position + * + * @return {boolean} + */ function canAttach(elements, target, source, position) { if (!Array.isArray(elements)) { @@ -633,25 +816,27 @@ function canAttach(elements, target, source, position) { return 'attach'; } - /** - * Defines how to replace elements for a given target. - * - * Returns an array containing all elements which will be replaced. + * Check whether the given elements can be replaced. Return all elements which + * can be replaced. * * @example * - * [{ id: 'IntermediateEvent_2', - * type: 'bpmn:StartEvent' - * }, - * { id: 'IntermediateEvent_5', - * type: 'bpmn:EndEvent' - * }] + * ```javascript + * [{ + * id: 'IntermediateEvent_1', + * type: 'bpmn:StartEvent' + * }, + * { + * id: 'Task_1', + * type: 'bpmn:ServiceTask' + * }] + * ``` * - * @param {Array} elements - * @param {Object} target + * @param {BpmnElement[]} elements + * @param {BpmnShape} [target] * - * @return {Object} an object containing all elements which have to be replaced + * @return {CanReplaceResult} */ function canReplace(elements, target, position) { @@ -733,6 +918,12 @@ function canReplace(elements, target, position) { return canExecute.replacements.length ? canExecute : false; } +/** + * @param {BpmnElement[]} elements + * @param {BpmnShape} target + * + * @return {boolean} + */ function canMove(elements, target) { // do not move selection containing lanes @@ -750,6 +941,14 @@ function canMove(elements, target) { }); } +/** + * @param {BpmnShape} shape + * @param {BpmnShape} target + * @param {BpmnElement} source + * @param {Point} position + * + * @return {boolean} + */ function canCreate(shape, target, source, position) { if (!target) { @@ -773,6 +972,12 @@ function canCreate(shape, target, source, position) { return canDrop(shape, target, position) || canInsert(shape, target, position); } +/** + * @param {BpmnShape} shape + * @param {Rect} newBounds + * + * @return {boolean} + */ function canResize(shape, newBounds) { if (is(shape, 'bpmn:SubProcess')) { return ( @@ -802,8 +1007,12 @@ function canResize(shape, newBounds) { } /** - * Check, whether one side of the relationship - * is a text annotation. + * Check whether one of of the elements to be connected is a text annotation. + * + * @param {BpmnElement} source + * @param {BpmnElement} target + * + * @return {boolean} */ function isOneTextAnnotation(source, target) { @@ -816,7 +1025,12 @@ function isOneTextAnnotation(source, target) { ); } - +/** + * @param {BpmnElement} source + * @param {BpmnElement} target + * + * @return {CanConnectResult} + */ function canConnectAssociation(source, target) { // compensation boundary events are exception @@ -839,6 +1053,12 @@ function canConnectAssociation(source, target) { return !!canConnectDataAssociation(source, target); } +/** + * @param {BpmnElement} source + * @param {BpmnElement} target + * + * @return {boolean} + */ function canConnectMessageFlow(source, target) { // during connect user might move mouse out of canvas @@ -854,6 +1074,12 @@ function canConnectMessageFlow(source, target) { ); } +/** + * @param {BpmnElement} source + * @param {BpmnElement} target + * + * @return {boolean} + */ function canConnectSequenceFlow(source, target) { return isSequenceFlowSource(source) && isSequenceFlowTarget(target) && @@ -861,7 +1087,12 @@ function canConnectSequenceFlow(source, target) { !(is(source, 'bpmn:EventBasedGateway') && !isEventBasedTarget(target)); } - +/** + * @param {BpmnElement} source + * @param {BpmnElement} target + * + * @return {CanConnectResult} + */ function canConnectDataAssociation(source, target) { if (isAny(source, [ 'bpmn:DataObjectReference', 'bpmn:DataStoreReference' ]) && @@ -877,9 +1108,15 @@ function canConnectDataAssociation(source, target) { return false; } -function canInsert(shape, flow, position) { - - if (!flow) { +/** + * @param {BpmnShape} shape + * @param {BpmnConnection} connection + * @param {Point} position + * + * @return {boolean} + */ +function canInsert(shape, connection, position) { + if (!connection) { return false; } @@ -888,32 +1125,39 @@ function canInsert(shape, flow, position) { return false; } - shape = shape[0]; + shape = shape[ 0 ]; } - if (flow.source === shape || - flow.target === shape) { + if (connection.source === shape || + connection.target === shape) { return false; } - // return true if we can drop on the - // underlying flow parent - // - // at this point we are not really able to talk - // about connection rules (yet) - + // return true if shape can be inserted into connection parent return ( - isAny(flow, [ 'bpmn:SequenceFlow', 'bpmn:MessageFlow' ]) && - !isLabel(flow) && + isAny(connection, [ 'bpmn:SequenceFlow', 'bpmn:MessageFlow' ]) && + !isLabel(connection) && is(shape, 'bpmn:FlowNode') && !is(shape, 'bpmn:BoundaryEvent') && - canDrop(shape, flow.parent, position)); + canDrop(shape, connection.parent, position)); } +/** + * @param {BpmnElement[]} elements + * @param {BpmnElement} element + * + * @return {boolean} + */ function includes(elements, element) { return (elements && element) && elements.indexOf(element) !== -1; } +/** + * @param {BpmnElement[]} elements + * @param {BpmnElement} element + * + * @return {boolean} + */ function canCopy(elements, element) { if (isLabel(element)) { return true; @@ -926,6 +1170,11 @@ function canCopy(elements, element) { return true; } +/** + * @param {BpmnElement} element + * + * @return {BpmnElement|null} + */ function getRootElement(element) { return getParent(element, 'bpmn:Process') || getParent(element, 'bpmn:Collaboration'); } diff --git a/lib/features/search/BpmnSearchProvider.js b/lib/features/search/BpmnSearchProvider.js index d606f1a2c1..abf45fe88a 100644 --- a/lib/features/search/BpmnSearchProvider.js +++ b/lib/features/search/BpmnSearchProvider.js @@ -8,12 +8,25 @@ import { getLabel } from '../label-editing/LabelUtil'; +/** + * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas + * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry + * @typedef {import('diagram-js/lib/features/search-pad/SearchPad').default} SearchPad + * + * @typedef {import('diagram-js/lib/features/search-pad/SearchPadProvider').default} SearchPadProvider + * @typedef {import('diagram-js/lib/features/search-pad/SearchPadProvider').SearchResult} SearchResult + */ /** - * Provides ability to search through BPMN elements + * Provides ability to search for BPMN elements. + * + * @implements {SearchPadProvider} + * + * @param {ElementRegistry} elementRegistry + * @param {SearchPad} searchPad + * @param {Canvas} canvas */ export default function BpmnSearchProvider(elementRegistry, searchPad, canvas) { - this._elementRegistry = elementRegistry; this._canvas = canvas; @@ -26,24 +39,10 @@ BpmnSearchProvider.$inject = [ 'canvas' ]; - /** - * Finds all elements that match given pattern - * - * : - * { - * primaryTokens: >, - * secondaryTokens: >, - * element: - * } - * - * : - * { - * normal|matched: - * } + * @param {string} pattern * - * @param {string} pattern - * @return {Array} + * @return {SearchResult[]} */ BpmnSearchProvider.prototype.find = function(pattern) { var rootElement = this._canvas.getRootElement(); @@ -80,16 +79,25 @@ BpmnSearchProvider.prototype.find = function(pattern) { return elements; }; - +/** + * @param {Token[]} tokens + * + * @returns {boolean} + */ function hasMatched(tokens) { - var matched = filter(tokens, function(t) { - return !!t.matched; + var matched = filter(tokens, function(token) { + return !!token.matched; }); return matched.length > 0; } - +/** + * @param {string} text + * @param {string} pattern + * + * @returns {Token[]} + */ function matchAndSplit(text, pattern) { var tokens = [], originalText = text; diff --git a/lib/features/snapping/BpmnConnectSnapping.js b/lib/features/snapping/BpmnConnectSnapping.js index fd24bc1067..a278a16712 100644 --- a/lib/features/snapping/BpmnConnectSnapping.js +++ b/lib/features/snapping/BpmnConnectSnapping.js @@ -15,6 +15,17 @@ import { isAny } from '../modeling/util/ModelingUtil'; import { some } from 'min-dash'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * + * @typedef {import('diagram-js/lib/core/EventBus').Event} Event + * + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/util/Types').Axis} Axis + * @typedef {import('diagram-js/lib/util/Types').Point} Point + */ + var HIGHER_PRIORITY = 1250; var BOUNDARY_TO_HOST_THRESHOLD = 40; @@ -110,7 +121,13 @@ BpmnConnectSnapping.$inject = [ 'eventBus' ]; // helpers ////////// -// snap to target if event in target +/** + * Snap to the given target if the event is inside the bounds of the target. + * + * @param {Event} event + * @param {BpmnShape} target + * @param {number} padding + */ function snapToShape(event, target, padding) { AXES.forEach(function(axis) { var dimensionForAxis = getDimensionForAxis(axis, target); @@ -123,7 +140,12 @@ function snapToShape(event, target, padding) { }); } -// snap to target mid if event in target mid +/** + * Snap to the target mid if the event is in the target mid. + * + * @param {Event} event + * @param {BpmnShape} target + */ function snapToTargetMid(event, target) { var targetMid = mid(target); @@ -134,7 +156,11 @@ function snapToTargetMid(event, target) { }); } -// snap to prevent loop overlapping boundary event +/** + * Snap to prevent a loop overlapping a boundary event. + * + * @param {Event} event + */ function snapBoundaryEventLoop(event) { var context = event.context, source = context.source, @@ -172,6 +198,10 @@ function snapBoundaryEventLoop(event) { }); } +/** + * @param {Event} event + * @param {Point} position + */ function snapToPosition(event, position) { setSnapped(event, 'x', position.x); setSnapped(event, 'y', position.y); @@ -187,10 +217,21 @@ function isAnyType(attrs, types) { }); } +/** + * @param {Axis} axis + * @param {BpmnShape} element + * + * @return {number} + */ function getDimensionForAxis(axis, element) { return axis === 'x' ? element.width : element.height; } +/** + * @param {BpmnShape} target + * + * @return {number} + */ function getTargetBoundsPadding(target) { if (is(target, 'bpmn:Task')) { return TASK_BOUNDS_PADDING; @@ -199,6 +240,13 @@ function getTargetBoundsPadding(target) { } } +/** + * @param {Event} event + * @param {BpmnShape} target + * @param {Axis} axis + * + * @return {boolean} + */ function isMid(event, target, axis) { return event[ axis ] > target[ axis ] + TARGET_CENTER_PADDING && event[ axis ] < target[ axis ] + getDimensionForAxis(axis, target) - TARGET_CENTER_PADDING; diff --git a/lib/features/snapping/BpmnCreateMoveSnapping.js b/lib/features/snapping/BpmnCreateMoveSnapping.js index a36a248120..38538229e3 100644 --- a/lib/features/snapping/BpmnCreateMoveSnapping.js +++ b/lib/features/snapping/BpmnCreateMoveSnapping.js @@ -22,6 +22,19 @@ import { getBoundaryAttachment } from './BpmnSnappingUtil'; import { forEach } from 'min-dash'; +/** + * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus + * @typedef {import('didi').Injector} Injector + * + * @typedef {import('diagram-js/lib/features/snapping/SnapContext').default} SnapContext + * @typedef {import('diagram-js/lib/features/snapping/SnapContext').SnapPoints} SnapPoints + * + * @typedef {import('diagram-js/lib/core/EventBus').Event} Event + * + * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + */ + var HIGH_PRIORITY = 1500; @@ -63,6 +76,11 @@ BpmnCreateMoveSnapping.$inject = [ 'injector' ]; +/** + * @param {Event} event + * + * @returns {SnapContext} + */ BpmnCreateMoveSnapping.prototype.initSnap = function(event) { var snapContext = CreateMoveSnapping.prototype.initSnap.call(this, event); @@ -96,6 +114,13 @@ BpmnCreateMoveSnapping.prototype.initSnap = function(event) { return snapContext; }; +/** + * @param {SnapPoints} snapPoints + * @param {BpmnShape} shape + * @param {BpmnShape} target + * + * @returns {SnapPoints} + */ BpmnCreateMoveSnapping.prototype.addSnapTargetPoints = function(snapPoints, shape, target) { CreateMoveSnapping.prototype.addSnapTargetPoints.call(this, snapPoints, shape, target); @@ -149,6 +174,12 @@ BpmnCreateMoveSnapping.prototype.addSnapTargetPoints = function(snapPoints, shap return snapPoints; }; +/** + * @param {BpmnShape} shape + * @param {BpmnShape} target + * + * @return {BpmnShape[]} + */ BpmnCreateMoveSnapping.prototype.getSnapTargets = function(shape, target) { return CreateMoveSnapping.prototype.getSnapTargets.call(this, shape, target) .filter(function(snapTarget) { @@ -160,6 +191,10 @@ BpmnCreateMoveSnapping.prototype.getSnapTargets = function(shape, target) { // helpers ////////// +/** + * @param {BpmnShape} event + * @param {BpmnShape} target + */ function snapBoundaryEvent(event, target) { var targetTRBL = asTRBL(target); @@ -189,12 +224,21 @@ function snapBoundaryEvent(event, target) { } } +/** + * @param {BpmnElement[]} elements + * @param {string} type + * + * @returns {boolean} + */ function areAll(elements, type) { return elements.every(function(el) { return is(el, type); }); } +/** + * @param {BpmnElement} element + */ function isContainer(element) { if (is(element, 'bpmn:SubProcess') && isExpanded(element)) { return true; @@ -203,7 +247,9 @@ function isContainer(element) { return is(element, 'bpmn:Participant'); } - +/** + * @param {Event} event + */ function setSnappedIfConstrained(event) { var context = event.context, createConstraints = context.createConstraints; diff --git a/lib/features/snapping/BpmnSnappingUtil.js b/lib/features/snapping/BpmnSnappingUtil.js index a88882b163..2c086641ad 100644 --- a/lib/features/snapping/BpmnSnappingUtil.js +++ b/lib/features/snapping/BpmnSnappingUtil.js @@ -1,5 +1,17 @@ import { getOrientation } from 'diagram-js/lib/layout/LayoutUtil'; +/** + * @typedef {import('diagram-js/lib/util/Types').DirectionTRBL} DirectionTRBL + * @typedef {import('diagram-js/lib/util/Types').Point} Point + * @typedef {import('diagram-js/lib/util/Types').Rect} Rect + */ + +/** + * @param {Point} position + * @param {Rect} targetBounds + * + * @returns {DirectionTRBL|null} + */ export function getBoundaryAttachment(position, targetBounds) { var orientation = getOrientation(position, targetBounds, -15); diff --git a/lib/features/space-tool/BpmnSpaceTool.js b/lib/features/space-tool/BpmnSpaceTool.js index 77844bc663..a44c79d55a 100644 --- a/lib/features/space-tool/BpmnSpaceTool.js +++ b/lib/features/space-tool/BpmnSpaceTool.js @@ -4,7 +4,18 @@ import SpaceTool from 'diagram-js/lib/features/space-tool/SpaceTool'; import { is } from '../../util/ModelUtil'; - +/** + * @typedef {import('didi').Injector} Injector + * + * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * + * @typedef {import('diagram-js/lib/util/Types').Axis} Axis + * @typedef {import('diagram-js/lib/util/Types').Point} Point + */ + +/** + * @param {Injector} injector + */ export default function BpmnSpaceTool(injector) { injector.invoke(SpaceTool, this); } @@ -15,6 +26,14 @@ BpmnSpaceTool.$inject = [ inherits(BpmnSpaceTool, SpaceTool); +/** + * @param {BpmnShape[]} elements + * @param {Axis} axis + * @param {Point} delta + * @param {number} start + * + * @returns {Object} + */ BpmnSpaceTool.prototype.calculateAdjustments = function(elements, axis, delta, start) { var adjustments = SpaceTool.prototype.calculateAdjustments.call(this, elements, axis, delta, start); From 490e78af6031626bf42e31c8eed2f4e72ae04072 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 17 Apr 2023 13:11:37 +0200 Subject: [PATCH 366/989] chore(popup-menu): migrate `ReplaceMenuProvider` to new popup menu API --- .../popup-menu/ReplaceMenuProvider.js | 336 +++++++++--------- 1 file changed, 172 insertions(+), 164 deletions(-) diff --git a/lib/features/popup-menu/ReplaceMenuProvider.js b/lib/features/popup-menu/ReplaceMenuProvider.js index c454133aff..6cfd931ba5 100644 --- a/lib/features/popup-menu/ReplaceMenuProvider.js +++ b/lib/features/popup-menu/ReplaceMenuProvider.js @@ -15,6 +15,7 @@ import { import { forEach, filter, + isArray, isUndefined } from 'min-dash'; @@ -32,6 +33,8 @@ import * as replaceOptions from '../replace/ReplaceOptions'; * @typedef {import('../../model/Types').Moddle} Moddle * * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').PopupMenuEntries} PopupMenuEntries + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').PopupMenuEntry} PopupMenuEntry + * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').PopupMenuEntryAction} PopupMenuEntryAction * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').PopupMenuHeaderEntries} PopupMenuHeaderEntries * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').default} PopupMenuProvider * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').PopupMenuTarget} PopupMenuTarget @@ -64,7 +67,7 @@ export default function ReplaceMenuProvider( this._rules = rules; this._translate = translate; - this.register(); + this._register(); } ReplaceMenuProvider.$inject = [ @@ -77,7 +80,7 @@ ReplaceMenuProvider.$inject = [ 'translate' ]; -ReplaceMenuProvider.prototype.register = function() { +ReplaceMenuProvider.prototype._register = function() { this._popupMenu.registerProvider('bpmn-replace', this); }; @@ -92,10 +95,10 @@ ReplaceMenuProvider.prototype.getPopupMenuEntries = function(target) { var rules = this._rules; - var entries; + var filteredReplaceOptions = []; - if (!rules.allowed('shape.replace', { element: target })) { - return []; + if (isArray(target) || !rules.allowed('shape.replace', { element: target })) { + return {}; } var differentType = isDifferentType(target); @@ -111,70 +114,70 @@ ReplaceMenuProvider.prototype.getPopupMenuEntries = function(target) { // start events outside sub processes if (is(businessObject, 'bpmn:StartEvent') && !is(businessObject.$parent, 'bpmn:SubProcess')) { - entries = filter(replaceOptions.START_EVENT, differentType); + filteredReplaceOptions = filter(replaceOptions.START_EVENT, differentType); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // expanded/collapsed pools if (is(businessObject, 'bpmn:Participant')) { - entries = filter(replaceOptions.PARTICIPANT, function(entry) { - return isExpanded(target) !== entry.target.isExpanded; + filteredReplaceOptions = filter(replaceOptions.PARTICIPANT, function(replaceOption) { + return isExpanded(target) !== replaceOption.target.isExpanded; }); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // start events inside event sub processes if (is(businessObject, 'bpmn:StartEvent') && isEventSubProcess(businessObject.$parent)) { - entries = filter(replaceOptions.EVENT_SUB_PROCESS_START_EVENT, function(entry) { + filteredReplaceOptions = filter(replaceOptions.EVENT_SUB_PROCESS_START_EVENT, function(replaceOption) { - var target = entry.target; + var target = replaceOption.target; var isInterrupting = target.isInterrupting !== false; var isInterruptingEqual = getBusinessObject(target).isInterrupting === isInterrupting; // filters elements which types and event definition are equal but have have different interrupting types - return differentType(entry) || !differentType(entry) && !isInterruptingEqual; + return differentType(replaceOption) || !differentType(replaceOption) && !isInterruptingEqual; }); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // start events inside sub processes if (is(businessObject, 'bpmn:StartEvent') && !isEventSubProcess(businessObject.$parent) && is(businessObject.$parent, 'bpmn:SubProcess')) { - entries = filter(replaceOptions.START_EVENT_SUB_PROCESS, differentType); + filteredReplaceOptions = filter(replaceOptions.START_EVENT_SUB_PROCESS, differentType); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // end events if (is(businessObject, 'bpmn:EndEvent')) { - entries = filter(replaceOptions.END_EVENT, function(entry) { - var target = entry.target; + filteredReplaceOptions = filter(replaceOptions.END_EVENT, function(replaceOption) { + var target = replaceOption.target; // hide cancel end events outside transactions if (target.eventDefinitionType == 'bpmn:CancelEventDefinition' && !is(businessObject.$parent, 'bpmn:Transaction')) { return false; } - return differentType(entry); + return differentType(replaceOption); }); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // boundary events if (is(businessObject, 'bpmn:BoundaryEvent')) { - entries = filter(replaceOptions.BOUNDARY_EVENT, function(entry) { + filteredReplaceOptions = filter(replaceOptions.BOUNDARY_EVENT, function(replaceOption) { - var target = entry.target; + var target = replaceOption.target; if (target.eventDefinitionType == 'bpmn:CancelEventDefinition' && !is(businessObject.attachedToRef, 'bpmn:Transaction')) { @@ -184,59 +187,59 @@ ReplaceMenuProvider.prototype.getPopupMenuEntries = function(target) { var isCancelActivityEqual = businessObject.cancelActivity == cancelActivity; - return differentType(entry) || !differentType(entry) && !isCancelActivityEqual; + return differentType(replaceOption) || !differentType(replaceOption) && !isCancelActivityEqual; }); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // intermediate events if (is(businessObject, 'bpmn:IntermediateCatchEvent') || is(businessObject, 'bpmn:IntermediateThrowEvent')) { - entries = filter(replaceOptions.INTERMEDIATE_EVENT, differentType); + filteredReplaceOptions = filter(replaceOptions.INTERMEDIATE_EVENT, differentType); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // gateways if (is(businessObject, 'bpmn:Gateway')) { - entries = filter(replaceOptions.GATEWAY, differentType); + filteredReplaceOptions = filter(replaceOptions.GATEWAY, differentType); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // transactions if (is(businessObject, 'bpmn:Transaction')) { - entries = filter(replaceOptions.TRANSACTION, differentType); + filteredReplaceOptions = filter(replaceOptions.TRANSACTION, differentType); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // expanded event sub processes if (isEventSubProcess(businessObject) && isExpanded(target)) { - entries = filter(replaceOptions.EVENT_SUB_PROCESS, differentType); + filteredReplaceOptions = filter(replaceOptions.EVENT_SUB_PROCESS, differentType); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // expanded sub processes if (is(businessObject, 'bpmn:SubProcess') && isExpanded(target)) { - entries = filter(replaceOptions.SUBPROCESS_EXPANDED, differentType); + filteredReplaceOptions = filter(replaceOptions.SUBPROCESS_EXPANDED, differentType); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // collapsed ad hoc sub processes if (is(businessObject, 'bpmn:AdHocSubProcess') && !isExpanded(target)) { - entries = filter(replaceOptions.TASK, function(entry) { + filteredReplaceOptions = filter(replaceOptions.TASK, function(replaceOption) { - var target = entry.target; + var target = replaceOption.target; var isTargetSubProcess = target.type === 'bpmn:SubProcess'; @@ -245,7 +248,7 @@ ReplaceMenuProvider.prototype.getPopupMenuEntries = function(target) { return isDifferentType(target, target) && (!isTargetSubProcess || isTargetExpanded); }); - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } // sequence flows @@ -255,19 +258,19 @@ ReplaceMenuProvider.prototype.getPopupMenuEntries = function(target) { // flow nodes if (is(businessObject, 'bpmn:FlowNode')) { - entries = filter(replaceOptions.TASK, differentType); + filteredReplaceOptions = filter(replaceOptions.TASK, differentType); - // collapsed SubProcess can not be replaced with itself + // collapsed sub process cannot be replaced with itself if (is(businessObject, 'bpmn:SubProcess') && !isExpanded(target)) { - entries = filter(entries, function(entry) { - return entry.label !== 'Sub Process (collapsed)'; + filteredReplaceOptions = filter(filteredReplaceOptions, function(replaceOption) { + return replaceOption.label !== 'Sub Process (collapsed)'; }); } - return this._createEntries(target, entries); + return this._createEntries(target, filteredReplaceOptions); } - return []; + return {}; }; /** @@ -275,26 +278,38 @@ ReplaceMenuProvider.prototype.getPopupMenuEntries = function(target) { * * @returns {PopupMenuHeaderEntries} */ -ReplaceMenuProvider.prototype.getHeaderEntries = function(target) { +ReplaceMenuProvider.prototype.getPopupMenuHeaderEntries = function(target) { - var headerEntries = []; + var headerEntries = {}; if (is(target, 'bpmn:Activity') && !isEventSubProcess(target)) { - headerEntries = headerEntries.concat(this._getLoopEntries(target)); + headerEntries = { + ...headerEntries, + ...this._getLoopCharacteristicsHeaderEntries(target) + }; } if (is(target, 'bpmn:DataObjectReference')) { - headerEntries = headerEntries.concat(this._getDataObjectIsCollection(target)); + headerEntries = { + ...headerEntries, + ...this._getCollectionHeaderEntries(target) + }; } if (is(target, 'bpmn:Participant')) { - headerEntries = headerEntries.concat(this._getParticipantMultiplicity(target)); + headerEntries = { + ...headerEntries, + ...this._getParticipantMultiplicityHeaderEntries(target) + }; } if (is(target, 'bpmn:SubProcess') && !is(target, 'bpmn:Transaction') && !isEventSubProcess(target)) { - headerEntries.push(this._getAdHocEntry(target)); + headerEntries = { + ...headerEntries, + ...this._getAdHocHeaderEntries(target) + }; } return headerEntries; @@ -302,50 +317,47 @@ ReplaceMenuProvider.prototype.getHeaderEntries = function(target) { /** - * Creates an array of menu entry objects for a given element and filters the replaceOptions - * according to a filter function. + * Create popup menu entries for the given target. * - * @param {BpmnElement} element + * @param {PopupMenuTarget} target * @param {ReplaceOption[]} replaceOptions * * @return {PopupMenuEntries} */ -ReplaceMenuProvider.prototype._createEntries = function(element, replaceOptions) { - var menuEntries = []; +ReplaceMenuProvider.prototype._createEntries = function(target, replaceOptions) { + var entries = {}; var self = this; - forEach(replaceOptions, function(definition) { - var entry = self._createMenuEntry(definition, element); - - menuEntries.push(entry); + forEach(replaceOptions, function(replaceOption) { + entries[ replaceOption.actionName ] = self._createEntry(replaceOption, target); }); - return menuEntries; + return entries; }; /** - * Creates an array of menu entry objects for a given sequence flow. + * Creates popup menu entries for the given sequence flow. * - * @param {djs.model.Base} element - * @param {Object} replaceOptions - - * @return {Array} a list of menu items + * @param {PopupMenuTarget} target + * @param {ReplaceOption[]} replaceOptions + * + * @return {PopupMenuEntries} */ -ReplaceMenuProvider.prototype._createSequenceFlowEntries = function(element, replaceOptions) { +ReplaceMenuProvider.prototype._createSequenceFlowEntries = function(target, replaceOptions) { - var businessObject = getBusinessObject(element); + var businessObject = getBusinessObject(target); - var menuEntries = []; + var entries = {}; var modeling = this._modeling, moddle = this._moddle; var self = this; - forEach(replaceOptions, function(entry) { + forEach(replaceOptions, function(replaceOption) { - switch (entry.actionName) { + switch (replaceOption.actionName) { case 'replace-with-default-flow': if (businessObject.sourceRef.default !== businessObject && (is(businessObject.sourceRef, 'bpmn:ExclusiveGateway') || @@ -353,97 +365,103 @@ ReplaceMenuProvider.prototype._createSequenceFlowEntries = function(element, rep is(businessObject.sourceRef, 'bpmn:ComplexGateway') || is(businessObject.sourceRef, 'bpmn:Activity'))) { - menuEntries.push(self._createMenuEntry(entry, element, function() { - modeling.updateProperties(element.source, { default: businessObject }); - })); + entries = { + ...entries, + [ replaceOption.actionName ]: self._createEntry(replaceOption, target, function() { + modeling.updateProperties(target.source, { default: businessObject }); + }) + }; } break; case 'replace-with-conditional-flow': if (!businessObject.conditionExpression && is(businessObject.sourceRef, 'bpmn:Activity')) { - menuEntries.push(self._createMenuEntry(entry, element, function() { - var conditionExpression = moddle.create('bpmn:FormalExpression', { body: '' }); + entries = { + ...entries, + [ replaceOption.actionName ]: self._createEntry(replaceOption, target, function() { + var conditionExpression = moddle.create('bpmn:FormalExpression', { body: '' }); - modeling.updateProperties(element, { conditionExpression: conditionExpression }); - })); + modeling.updateProperties(target, { conditionExpression: conditionExpression }); + }) + }; } break; default: - // default flows + // conditional flow -> sequence flow if (is(businessObject.sourceRef, 'bpmn:Activity') && businessObject.conditionExpression) { - return menuEntries.push(self._createMenuEntry(entry, element, function() { - modeling.updateProperties(element, { conditionExpression: undefined }); - })); + entries = { + ...entries, + [ replaceOption.actionName ]: self._createEntry(replaceOption, target, function() { + modeling.updateProperties(target, { conditionExpression: undefined }); + }) + }; } - // conditional flows + // default flow -> sequence flow if ((is(businessObject.sourceRef, 'bpmn:ExclusiveGateway') || is(businessObject.sourceRef, 'bpmn:InclusiveGateway') || is(businessObject.sourceRef, 'bpmn:ComplexGateway') || is(businessObject.sourceRef, 'bpmn:Activity')) && businessObject.sourceRef.default === businessObject) { - - return menuEntries.push(self._createMenuEntry(entry, element, function() { - modeling.updateProperties(element.source, { default: undefined }); - })); + entries = { + ...entries, + [ replaceOption.actionName ]: self._createEntry(replaceOption, target, function() { + modeling.updateProperties(target.source, { default: undefined }); + }) + }; } } }); - return menuEntries; + return entries; }; - /** - * Creates and returns a single menu entry item. + * Create a popup menu entry for the given replace option. * - * @param {Object} definition a single replace options definition object - * @param {djs.model.Base} element - * @param {Function} [action] an action callback function which gets called when - * the menu entry is being triggered. + * @param {ReplaceOption} replaceOption + * @param {PopupMenuTarget} target + * @param {PopupMenuEntryAction} [action] * - * @return {Object} menu entry item + * @return {PopupMenuEntry} */ -ReplaceMenuProvider.prototype._createMenuEntry = function(definition, element, action) { +ReplaceMenuProvider.prototype._createEntry = function(replaceOption, target, action) { var translate = this._translate; var replaceElement = this._bpmnReplace.replaceElement; var replaceAction = function() { - return replaceElement(element, definition.target); + return replaceElement(target, replaceOption.target); }; - var label = definition.label; + var label = replaceOption.label; if (label && typeof label === 'function') { - label = label(element); + label = label(target); } action = action || replaceAction; - var menuEntry = { + return { label: translate(label), - className: definition.className, - id: definition.actionName, + className: replaceOption.className, action: action }; - - return menuEntry; }; /** - * Get a list of menu items containing buttons for multi instance markers + * Get popup menu header entries for the loop characteristics of the given BPMN element. * - * @param {djs.model.Base} element + * @param {PopupMenuTarget} target * - * @return {Array} a list of menu items + * @return {PopupMenuHeaderEntries} */ -ReplaceMenuProvider.prototype._getLoopEntries = function(element) { +ReplaceMenuProvider.prototype._getLoopCharacteristicsHeaderEntries = function(target) { var self = this; var translate = this._translate; function toggleLoopEntry(event, entry) { - var newLoopCharacteristics = getBusinessObject(element).loopCharacteristics; + var newLoopCharacteristics = getBusinessObject(target).loopCharacteristics; if (entry.active) { newLoopCharacteristics = undefined; @@ -455,10 +473,10 @@ ReplaceMenuProvider.prototype._getLoopEntries = function(element) { newLoopCharacteristics.isSequential = entry.options.isSequential; } - self._modeling.updateProperties(element, { loopCharacteristics: newLoopCharacteristics }); + self._modeling.updateProperties(target, { loopCharacteristics: newLoopCharacteristics }); } - var businessObject = getBusinessObject(element), + var businessObject = getBusinessObject(target), loopCharacteristics = businessObject.loopCharacteristics; var isSequential, @@ -472,9 +490,8 @@ ReplaceMenuProvider.prototype._getLoopEntries = function(element) { } - var loopEntries = [ - { - id: 'toggle-parallel-mi', + return { + 'toggle-parallel-mi' : { className: 'bpmn-icon-parallel-mi-marker', title: translate('Parallel Multi Instance'), active: isParallel, @@ -484,8 +501,7 @@ ReplaceMenuProvider.prototype._getLoopEntries = function(element) { isSequential: false } }, - { - id: 'toggle-sequential-mi', + 'toggle-sequential-mi': { className: 'bpmn-icon-sequential-mi-marker', title: translate('Sequential Multi Instance'), active: isSequential, @@ -495,8 +511,7 @@ ReplaceMenuProvider.prototype._getLoopEntries = function(element) { isSequential: true } }, - { - id: 'toggle-loop', + 'toggle-loop': { className: 'bpmn-icon-loop-marker', title: translate('Loop'), active: isLoop, @@ -505,57 +520,54 @@ ReplaceMenuProvider.prototype._getLoopEntries = function(element) { loopCharacteristics: 'bpmn:StandardLoopCharacteristics' } } - ]; - return loopEntries; + }; }; /** - * Get a list of menu items containing a button for the collection marker + * Get popup menu header entries for the collection property of the given BPMN element. * - * @param {djs.model.Base} element + * @param {PopupMenuTarget} target * - * @return {Array} a list of menu items + * @return {PopupMenuHeaderEntries} */ -ReplaceMenuProvider.prototype._getDataObjectIsCollection = function(element) { +ReplaceMenuProvider.prototype._getCollectionHeaderEntries = function(target) { var self = this; var translate = this._translate; - var dataObject = element.businessObject.dataObjectRef; + var dataObject = target.businessObject.dataObjectRef; if (!dataObject) { - return []; + return {}; } function toggleIsCollection(event, entry) { self._modeling.updateModdleProperties( - element, + target, dataObject, { isCollection: !entry.active }); } var isCollection = dataObject.isCollection; - var dataObjectEntries = [ - { - id: 'toggle-is-collection', + return { + 'toggle-is-collection': { className: 'bpmn-icon-parallel-mi-marker', title: translate('Collection'), active: isCollection, action: toggleIsCollection, } - ]; - return dataObjectEntries; + }; }; /** - * Get a list of menu items containing a button for the participant multiplicity marker + * Get popup menu header entries for the participant multiplicity property of the given BPMN element. * - * @param {djs.model.Base} element + * @param {PopupMenuTarget} target * - * @return {Array} a list of menu items + * @return {PopupMenuHeaderEntries} */ -ReplaceMenuProvider.prototype._getParticipantMultiplicity = function(element) { +ReplaceMenuProvider.prototype._getParticipantMultiplicityHeaderEntries = function(target) { var self = this; var bpmnFactory = this._bpmnFactory; @@ -570,33 +582,30 @@ ReplaceMenuProvider.prototype._getParticipantMultiplicity = function(element) { } self._modeling.updateProperties( - element, + target, { participantMultiplicity: participantMultiplicity }); } - var participantMultiplicity = element.businessObject.participantMultiplicity; + var participantMultiplicity = target.businessObject.participantMultiplicity; - var participantEntries = [ - { - id: 'toggle-participant-multiplicity', + return { + 'toggle-participant-multiplicity': { className: 'bpmn-icon-parallel-mi-marker', title: translate('Participant Multiplicity'), active: !!participantMultiplicity, action: toggleParticipantMultiplicity, } - ]; - return participantEntries; + }; }; - /** - * Get the menu items containing a button for the ad hoc marker + * Get popup menu header entries for the ad-hoc property of the given BPMN element. * - * @param {djs.model.Base} element + * @param {PopupMenuTarget} target * - * @return {Object} a menu item + * @return {PopupMenuHeaderEntries} */ -ReplaceMenuProvider.prototype._getAdHocEntry = function(element) { +ReplaceMenuProvider.prototype._getAdHocHeaderEntries = function(element) { var translate = this._translate; var businessObject = getBusinessObject(element); @@ -604,25 +613,24 @@ ReplaceMenuProvider.prototype._getAdHocEntry = function(element) { var replaceElement = this._bpmnReplace.replaceElement; - var adHocEntry = { - id: 'toggle-adhoc', - className: 'bpmn-icon-ad-hoc-marker', - title: translate('Ad-hoc'), - active: isAdHoc, - action: function(event, entry) { - if (isAdHoc) { - return replaceElement(element, { type: 'bpmn:SubProcess' }, { - autoResize: false, - layoutConnection: false - }); - } else { - return replaceElement(element, { type: 'bpmn:AdHocSubProcess' }, { - autoResize: false, - layoutConnection: false - }); + return { + 'toggle-adhoc': { + className: 'bpmn-icon-ad-hoc-marker', + title: translate('Ad-hoc'), + active: isAdHoc, + action: function(event, entry) { + if (isAdHoc) { + return replaceElement(element, { type: 'bpmn:SubProcess' }, { + autoResize: false, + layoutConnection: false + }); + } else { + return replaceElement(element, { type: 'bpmn:AdHocSubProcess' }, { + autoResize: false, + layoutConnection: false + }); + } } } }; - - return adHocEntry; }; From 1d90ae636bc9cad372ac8c71d888e25ad99b4512 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 17 Apr 2023 13:20:03 +0200 Subject: [PATCH 367/989] fix: fix remaining JSDocs --- .../label-editing/cmd/UpdateLabelHandler.js | 17 ++++++++++++++--- lib/features/modeling/ElementFactory.js | 2 +- test/matchers/ConnectionMatchers.js | 2 +- test/spec/draw/BpmnRendererSpec.js | 8 ++++++-- .../features/copy-paste/BpmnCopyPasteSpec.js | 8 ++++++-- 5 files changed, 28 insertions(+), 9 deletions(-) diff --git a/lib/features/label-editing/cmd/UpdateLabelHandler.js b/lib/features/label-editing/cmd/UpdateLabelHandler.js index 692da3d163..1f913b2085 100644 --- a/lib/features/label-editing/cmd/UpdateLabelHandler.js +++ b/lib/features/label-editing/cmd/UpdateLabelHandler.js @@ -20,16 +20,27 @@ var NULL_DIMENSIONS = { height: 0 }; +/** + * @typedef {import('../../modeling/Modeling').default} Modeling + * @typedef {import('../../../draw/TextRenderer').default} TextRenderer + * @typedef {import('../../modeling/BpmnFactory').default} BpmnFactory + * + * @typedef {import('../../../model/Types').BpmnElement} BpmnElement + */ /** * A handler that updates the text of a BPMN element. + * + * @param {Modeling} modeling + * @param {TextRenderer} textRenderer + * @param {BpmnFactory} bpmnFactory */ export default function UpdateLabelHandler(modeling, textRenderer, bpmnFactory) { /** * Creates an empty `diLabel` attribute for embedded labels. * - * @param {djs.model.Base} element + * @param {BpmnElement} element * @param {string} text */ function ensureInternalLabelDi(element, text) { @@ -54,7 +65,7 @@ export default function UpdateLabelHandler(modeling, textRenderer, bpmnFactory) * * Element parameter can be label itself or connection (i.e. sequence flow). * - * @param {djs.model.Base} element + * @param {BpmnElement} element * @param {string} text */ function setText(element, text) { @@ -158,7 +169,7 @@ UpdateLabelHandler.$inject = [ ]; -// helpers /////////////////////// +// helpers ////////// function isEmptyText(label) { return !label || !label.trim(); diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index 5d6866e2e8..cce03caf9b 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -346,7 +346,7 @@ ElementFactory.prototype.createParticipantShape = function(attrs) { * * @param {Element} element * @param {Object} attrs (in/out map of attributes) - * @param {Array} attributeNames name of attributes to apply + * @param {string[]} attributeNames name of attributes to apply * * @return {Object} changed attrs */ diff --git a/test/matchers/ConnectionMatchers.js b/test/matchers/ConnectionMatchers.js index 7c13670be1..0ccfea8951 100644 --- a/test/matchers/ConnectionMatchers.js +++ b/test/matchers/ConnectionMatchers.js @@ -56,7 +56,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/draw/BpmnRendererSpec.js b/test/spec/draw/BpmnRendererSpec.js index 98a4c22bce..a2e9a3f713 100644 --- a/test/spec/draw/BpmnRendererSpec.js +++ b/test/spec/draw/BpmnRendererSpec.js @@ -22,6 +22,10 @@ import { getDi } from 'lib/draw/BpmnRenderUtil'; +/** + * @typedef {import('../../../lib/model/Types').BpmnElement} BpmnElement + */ + function checkErrors(err, warnings) { expect(warnings).to.be.empty; expect(err).not.to.exist; @@ -495,8 +499,8 @@ describe('draw - bpmn renderer', function() { /** * Expect colors depending on element type. * - * @param {djs.model.base} element - Element. - * @param {SVG} gfx - Graphics of element. + * @param {BpmnElement} element - Element. + * @param {SVGElement} gfx - Graphics of element. * @param {string} fillColor - Fill color to expect. * @param {string} strokeColor - Stroke color to expect. */ diff --git a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js index d2e1c8c03a..7fb817d187 100644 --- a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js +++ b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js @@ -28,6 +28,10 @@ import { is } from 'lib/util/ModelUtil'; +/** + * @typedef {import('../../../../lib/model/Types').BpmnElement} BpmnElement + */ + describe('features/copy-paste', function() { @@ -968,7 +972,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)) { @@ -1134,7 +1138,7 @@ function _findDescriptorsInTree(elements, tree, depth) { /** * Copy elements. * - * @param {Array Date: Mon, 17 Apr 2023 13:44:27 +0200 Subject: [PATCH 368/989] chore: use `@return` instead of `@returns` --- lib/BaseViewer.js | 6 +++--- .../AlignElementsMenuProvider.js | 2 +- lib/features/context-pad/ContextPadProvider.js | 2 +- lib/features/copy-paste/ModdleCopy.js | 2 +- .../DistributeElementsMenuProvider.js | 2 +- lib/features/drilldown/DrilldownBreadcrumbs.js | 2 +- .../drilldown/SubprocessCompatibility.js | 2 +- lib/features/modeling/BpmnFactory.js | 18 +++++++++--------- lib/features/modeling/BpmnUpdater.js | 6 +++--- lib/features/modeling/ElementFactory.js | 4 ++-- lib/features/modeling/Modeling.js | 2 +- .../behavior/SubProcessPlaneBehavior.js | 4 ++-- .../modeling/cmd/UpdateFlowNodeRefsHandler.js | 2 +- lib/features/popup-menu/ReplaceMenuProvider.js | 4 ++-- lib/features/replace/BpmnReplace.js | 2 +- lib/features/search/BpmnSearchProvider.js | 4 ++-- .../snapping/BpmnCreateMoveSnapping.js | 6 +++--- lib/features/snapping/BpmnSnappingUtil.js | 2 +- lib/features/space-tool/BpmnSpaceTool.js | 2 +- .../features/copy-paste/BpmnCopyPasteSpec.js | 2 +- .../grid-snapping/BpmnGridSnappingSpec.js | 2 +- 21 files changed, 39 insertions(+), 39 deletions(-) diff --git a/lib/BaseViewer.js b/lib/BaseViewer.js index aaa54497f1..4bd571e7b5 100644 --- a/lib/BaseViewer.js +++ b/lib/BaseViewer.js @@ -668,7 +668,7 @@ BaseViewer.prototype.attachTo = function(parentNode) { /** * Get the definitions model element. * - * @returns {ModdleElement} The definitions model element. + * @return {ModdleElement} The definitions model element. */ BaseViewer.prototype.getDefinitions = function() { return this._definitions; @@ -740,7 +740,7 @@ BaseViewer.prototype._emit = function(type, event) { /** * @param {BaseViewerOptions} options * - * @returns {HTMLElement} + * @return {HTMLElement} */ BaseViewer.prototype._createContainer = function(options) { @@ -758,7 +758,7 @@ BaseViewer.prototype._createContainer = function(options) { /** * @param {BaseViewerOptions} options * - * @returns {Moddle} + * @return {Moddle} */ BaseViewer.prototype._createModdle = function(options) { const moddleOptions = assign({}, this._moddleExtensions, options.moddleExtensions); diff --git a/lib/features/align-elements/AlignElementsMenuProvider.js b/lib/features/align-elements/AlignElementsMenuProvider.js index 468ee66308..83c601c3ef 100644 --- a/lib/features/align-elements/AlignElementsMenuProvider.js +++ b/lib/features/align-elements/AlignElementsMenuProvider.js @@ -55,7 +55,7 @@ AlignElementsMenuProvider.$inject = [ /** * @param {PopupMenuTarget} target * - * @returns {PopupMenuEntries} + * @return {PopupMenuEntries} */ AlignElementsMenuProvider.prototype.getPopupMenuEntries = function(target) { var entries = {}; diff --git a/lib/features/context-pad/ContextPadProvider.js b/lib/features/context-pad/ContextPadProvider.js index 1397327dda..47b663140e 100644 --- a/lib/features/context-pad/ContextPadProvider.js +++ b/lib/features/context-pad/ContextPadProvider.js @@ -175,7 +175,7 @@ ContextPadProvider.prototype._isDeleteAllowed = function(elements) { /** * @param {BpmnElement} element * - * @returns {ContextPadEntries} + * @return {ContextPadEntries} */ ContextPadProvider.prototype.getContextPadEntries = function(element) { var contextPad = this._contextPad, diff --git a/lib/features/copy-paste/ModdleCopy.js b/lib/features/copy-paste/ModdleCopy.js index 6e9d411df6..6433275c06 100644 --- a/lib/features/copy-paste/ModdleCopy.js +++ b/lib/features/copy-paste/ModdleCopy.js @@ -169,7 +169,7 @@ ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, proper * @param {string} propertyName * @param {boolean} [clone=false] * - * @returns {any} + * @return {any} */ ModdleCopy.prototype.copyProperty = function(property, parent, propertyName, clone = false) { var self = this; diff --git a/lib/features/distribute-elements/DistributeElementsMenuProvider.js b/lib/features/distribute-elements/DistributeElementsMenuProvider.js index 1fc77095b2..4192bbf45a 100644 --- a/lib/features/distribute-elements/DistributeElementsMenuProvider.js +++ b/lib/features/distribute-elements/DistributeElementsMenuProvider.js @@ -45,7 +45,7 @@ DistributeElementsMenuProvider.$inject = [ /** * @param {PopupMenuTarget} target * - * @returns {PopupMenuEntries} + * @return {PopupMenuEntries} */ DistributeElementsMenuProvider.prototype.getPopupMenuEntries = function(target) { var entries = {}; diff --git a/lib/features/drilldown/DrilldownBreadcrumbs.js b/lib/features/drilldown/DrilldownBreadcrumbs.js index f160927515..8255353454 100644 --- a/lib/features/drilldown/DrilldownBreadcrumbs.js +++ b/lib/features/drilldown/DrilldownBreadcrumbs.js @@ -115,7 +115,7 @@ DrilldownBreadcrumbs.$inject = [ 'eventBus', 'elementRegistry', 'canvas' ]; * * @param {BpmnShape} child * - * @returns {BpmnShape} + * @return {BpmnShape} */ function getBusinessObjectParentChain(child) { var businessObject = getBusinessObject(child); diff --git a/lib/features/drilldown/SubprocessCompatibility.js b/lib/features/drilldown/SubprocessCompatibility.js index 43f3ea9865..62305db7d2 100644 --- a/lib/features/drilldown/SubprocessCompatibility.js +++ b/lib/features/drilldown/SubprocessCompatibility.js @@ -248,7 +248,7 @@ function getPlaneBounds(plane) { * @param {ModdleElement} businessObject * @param {CanvasPlane} plane * - * @returns {boolean} + * @return {boolean} */ function shouldMoveToPlane(businessObject, plane) { var parent = businessObject.$parent; diff --git a/lib/features/modeling/BpmnFactory.js b/lib/features/modeling/BpmnFactory.js index 60a7c6a31c..d2604e5480 100644 --- a/lib/features/modeling/BpmnFactory.js +++ b/lib/features/modeling/BpmnFactory.js @@ -31,7 +31,7 @@ BpmnFactory.$inject = [ 'moddle' ]; /** * @param {ModdleElement} element * - * @returns {boolean} + * @return {boolean} */ BpmnFactory.prototype._needsId = function(element) { return isAny(element, [ @@ -92,7 +92,7 @@ BpmnFactory.prototype._ensureId = function(element) { * @param {string} type * @param {Object} [attrs] * - * @returns {ModdleElement} + * @return {ModdleElement} */ BpmnFactory.prototype.create = function(type, attrs) { var element = this._model.create(type, attrs || {}); @@ -103,7 +103,7 @@ BpmnFactory.prototype.create = function(type, attrs) { }; /** - * @returns {ModdleElement} + * @return {ModdleElement} */ BpmnFactory.prototype.createDiLabel = function() { return this.create('bpmndi:BPMNLabel', { @@ -112,7 +112,7 @@ BpmnFactory.prototype.createDiLabel = function() { }; /** - * @returns {ModdleElement} + * @return {ModdleElement} */ BpmnFactory.prototype.createDiShape = function(semantic, attrs) { return this.create('bpmndi:BPMNShape', assign({ @@ -122,7 +122,7 @@ BpmnFactory.prototype.createDiShape = function(semantic, attrs) { }; /** - * @returns {ModdleElement} + * @return {ModdleElement} */ BpmnFactory.prototype.createDiBounds = function(bounds) { return this.create('dc:Bounds', bounds); @@ -131,7 +131,7 @@ BpmnFactory.prototype.createDiBounds = function(bounds) { /** * @param {Point[]} waypoints * - * @returns {ModdleElement[]} + * @return {ModdleElement[]} */ BpmnFactory.prototype.createDiWaypoints = function(waypoints) { var self = this; @@ -144,7 +144,7 @@ BpmnFactory.prototype.createDiWaypoints = function(waypoints) { /** * @param {Point} point * - * @returns {ModdleElement} + * @return {ModdleElement} */ BpmnFactory.prototype.createDiWaypoint = function(point) { return this.create('dc:Point', pick(point, [ 'x', 'y' ])); @@ -154,7 +154,7 @@ BpmnFactory.prototype.createDiWaypoint = function(point) { * @param {ModdleElement} semantic * @param {Object} attrs * - * @returns {ModdleElement} + * @return {ModdleElement} */ BpmnFactory.prototype.createDiEdge = function(semantic, attrs) { return this.create('bpmndi:BPMNEdge', assign({ @@ -167,7 +167,7 @@ BpmnFactory.prototype.createDiEdge = function(semantic, attrs) { * @param {ModdleElement} semantic * @param {Object} attrs * - * @returns {ModdleElement} + * @return {ModdleElement} */ BpmnFactory.prototype.createDiPlane = function(semantic, attrs) { return this.create('bpmndi:BPMNPlane', assign({ diff --git a/lib/features/modeling/BpmnUpdater.js b/lib/features/modeling/BpmnUpdater.js index 87d61187af..99fb4d59b3 100644 --- a/lib/features/modeling/BpmnUpdater.js +++ b/lib/features/modeling/BpmnUpdater.js @@ -477,7 +477,7 @@ BpmnUpdater.prototype.updateDiParent = function(di, parentDi) { /** * @param {ModdleElement} element * - * @returns {ModdleElement} + * @return {ModdleElement} */ function getDefinitions(element) { while (element && !is(element, 'bpmn:Definitions')) { @@ -490,7 +490,7 @@ function getDefinitions(element) { /** * @param {ModdleElement} container * - * @returns {ModdleElement} + * @return {ModdleElement} */ BpmnUpdater.prototype.getLaneSet = function(container) { @@ -800,7 +800,7 @@ function ifBpmn(fn) { * * @param {BpmnShape} shape * - * @returns {ModdleElement|undefined} + * @return {ModdleElement|undefined} */ function getEmbeddedLabelBounds(shape) { if (!is(shape, 'bpmn:Activity')) { diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index cce03caf9b..d9766ab476 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -254,7 +254,7 @@ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { * @param {BpmnElement} element The element. * @param {ModdleElement} di The DI. * - * @returns {Dimensions} Default width and height of the element. + * @return {Dimensions} Default width and height of the element. */ ElementFactory.prototype.getDefaultSize = function(element, di) { @@ -319,7 +319,7 @@ ElementFactory.prototype.getDefaultSize = function(element, di) { * @param {boolean|Partial & Partial} [attrs] Attributes or whether the participant is * expanded. * - * @returns {BpmnShape} The created participant. + * @return {BpmnShape} The created participant. */ ElementFactory.prototype.createParticipantShape = function(attrs) { diff --git a/lib/features/modeling/Modeling.js b/lib/features/modeling/Modeling.js index b9d4b4f6f2..29d5721a8c 100644 --- a/lib/features/modeling/Modeling.js +++ b/lib/features/modeling/Modeling.js @@ -110,7 +110,7 @@ Modeling.prototype.updateLabel = function(element, newLabel, newBounds, hints) { * @param {Partial} attrs * @param {ModelingHints} [hints] * - * @returns {BpmnConnection} + * @return {BpmnConnection} */ Modeling.prototype.connect = function(source, target, attrs, hints) { diff --git a/lib/features/modeling/behavior/SubProcessPlaneBehavior.js b/lib/features/modeling/behavior/SubProcessPlaneBehavior.js index 17ca782578..3c4d5ecc6d 100644 --- a/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +++ b/lib/features/modeling/behavior/SubProcessPlaneBehavior.js @@ -505,7 +505,7 @@ SubProcessPlaneBehavior.prototype._showRecursively = function(elements, hidden) * * @param {BpmnRoot|ModdleElement} planeElement * - * @returns {BpmnRoot} + * @return {BpmnRoot} */ SubProcessPlaneBehavior.prototype._addDiagram = function(planeElement) { var bpmnjs = this._bpmnjs; @@ -560,7 +560,7 @@ SubProcessPlaneBehavior.prototype._createNewDiagram = function(bpmnElement) { * * @param {BpmnRoot} rootElement * - * @returns {ModdleElement} + * @return {ModdleElement} */ SubProcessPlaneBehavior.prototype._removeDiagram = function(rootElement) { var bpmnjs = this._bpmnjs; diff --git a/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js b/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js index 42858b7f28..299c5ef5ad 100644 --- a/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +++ b/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js @@ -47,7 +47,7 @@ UpdateFlowNodeRefsHandler.$inject = [ * @param {BpmnShape} flowNodeShapes * @param {BpmnShape} laneShapes * - * @returns { { + * @return { { * flowNode: BpmnShape; * add: BpmnShape[]; * remove: BpmnShape[]; diff --git a/lib/features/popup-menu/ReplaceMenuProvider.js b/lib/features/popup-menu/ReplaceMenuProvider.js index 6cfd931ba5..165dc11594 100644 --- a/lib/features/popup-menu/ReplaceMenuProvider.js +++ b/lib/features/popup-menu/ReplaceMenuProvider.js @@ -87,7 +87,7 @@ ReplaceMenuProvider.prototype._register = function() { /** * @param {PopupMenuTarget} target * - * @returns {PopupMenuEntries} + * @return {PopupMenuEntries} */ ReplaceMenuProvider.prototype.getPopupMenuEntries = function(target) { @@ -276,7 +276,7 @@ ReplaceMenuProvider.prototype.getPopupMenuEntries = function(target) { /** * @param {PopupMenuTarget} target * - * @returns {PopupMenuHeaderEntries} + * @return {PopupMenuHeaderEntries} */ ReplaceMenuProvider.prototype.getPopupMenuHeaderEntries = function(target) { diff --git a/lib/features/replace/BpmnReplace.js b/lib/features/replace/BpmnReplace.js index a3937ca9c2..bc11d66f7a 100644 --- a/lib/features/replace/BpmnReplace.js +++ b/lib/features/replace/BpmnReplace.js @@ -339,7 +339,7 @@ BpmnReplace.$inject = [ /** * @param {ModdleElement} businessObject * - * @returns {boolean} + * @return {boolean} */ function isSubProcess(businessObject) { return is(businessObject, 'bpmn:SubProcess'); diff --git a/lib/features/search/BpmnSearchProvider.js b/lib/features/search/BpmnSearchProvider.js index abf45fe88a..683dcaecc6 100644 --- a/lib/features/search/BpmnSearchProvider.js +++ b/lib/features/search/BpmnSearchProvider.js @@ -82,7 +82,7 @@ BpmnSearchProvider.prototype.find = function(pattern) { /** * @param {Token[]} tokens * - * @returns {boolean} + * @return {boolean} */ function hasMatched(tokens) { var matched = filter(tokens, function(token) { @@ -96,7 +96,7 @@ function hasMatched(tokens) { * @param {string} text * @param {string} pattern * - * @returns {Token[]} + * @return {Token[]} */ function matchAndSplit(text, pattern) { var tokens = [], diff --git a/lib/features/snapping/BpmnCreateMoveSnapping.js b/lib/features/snapping/BpmnCreateMoveSnapping.js index 38538229e3..0c9a50c88a 100644 --- a/lib/features/snapping/BpmnCreateMoveSnapping.js +++ b/lib/features/snapping/BpmnCreateMoveSnapping.js @@ -79,7 +79,7 @@ BpmnCreateMoveSnapping.$inject = [ /** * @param {Event} event * - * @returns {SnapContext} + * @return {SnapContext} */ BpmnCreateMoveSnapping.prototype.initSnap = function(event) { var snapContext = CreateMoveSnapping.prototype.initSnap.call(this, event); @@ -119,7 +119,7 @@ BpmnCreateMoveSnapping.prototype.initSnap = function(event) { * @param {BpmnShape} shape * @param {BpmnShape} target * - * @returns {SnapPoints} + * @return {SnapPoints} */ BpmnCreateMoveSnapping.prototype.addSnapTargetPoints = function(snapPoints, shape, target) { CreateMoveSnapping.prototype.addSnapTargetPoints.call(this, snapPoints, shape, target); @@ -228,7 +228,7 @@ function snapBoundaryEvent(event, target) { * @param {BpmnElement[]} elements * @param {string} type * - * @returns {boolean} + * @return {boolean} */ function areAll(elements, type) { return elements.every(function(el) { diff --git a/lib/features/snapping/BpmnSnappingUtil.js b/lib/features/snapping/BpmnSnappingUtil.js index 2c086641ad..b79cc78775 100644 --- a/lib/features/snapping/BpmnSnappingUtil.js +++ b/lib/features/snapping/BpmnSnappingUtil.js @@ -10,7 +10,7 @@ import { getOrientation } from 'diagram-js/lib/layout/LayoutUtil'; * @param {Point} position * @param {Rect} targetBounds * - * @returns {DirectionTRBL|null} + * @return {DirectionTRBL|null} */ export function getBoundaryAttachment(position, targetBounds) { diff --git a/lib/features/space-tool/BpmnSpaceTool.js b/lib/features/space-tool/BpmnSpaceTool.js index a44c79d55a..33d4192610 100644 --- a/lib/features/space-tool/BpmnSpaceTool.js +++ b/lib/features/space-tool/BpmnSpaceTool.js @@ -32,7 +32,7 @@ inherits(BpmnSpaceTool, SpaceTool); * @param {Point} delta * @param {number} start * - * @returns {Object} + * @return {Object} */ BpmnSpaceTool.prototype.calculateAdjustments = function(elements, axis, delta, start) { var adjustments = SpaceTool.prototype.calculateAdjustments.call(this, elements, axis, delta, start); diff --git a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js index 7fb817d187..7a544d5761 100644 --- a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js +++ b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js @@ -1140,7 +1140,7 @@ function _findDescriptorsInTree(elements, tree, depth) { * * @param {(string|BpmnElement)[]} elements * - * @returns {Object} + * @return {Object} */ function copy(elements) { if (!isArray(elements)) { diff --git a/test/spec/features/grid-snapping/BpmnGridSnappingSpec.js b/test/spec/features/grid-snapping/BpmnGridSnappingSpec.js index 44cc54d6b7..f3e3f8ac4d 100644 --- a/test/spec/features/grid-snapping/BpmnGridSnappingSpec.js +++ b/test/spec/features/grid-snapping/BpmnGridSnappingSpec.js @@ -376,7 +376,7 @@ function recordEvents(eventBus, eventTypes) { * * @param {Object|string} event - Event or orientation * - * @returns {Object} + * @return {Object} */ function position(event) { var orientation; From 300581342286f2f031f22bf2eb79e82bb8913a05 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 17 Apr 2023 13:51:23 +0200 Subject: [PATCH 369/989] fix(align-elements): fix method name --- lib/features/align-elements/BpmnAlignElements.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/features/align-elements/BpmnAlignElements.js b/lib/features/align-elements/BpmnAlignElements.js index 7beb39a4b7..45f451d37a 100644 --- a/lib/features/align-elements/BpmnAlignElements.js +++ b/lib/features/align-elements/BpmnAlignElements.js @@ -24,7 +24,7 @@ BpmnAlignElements.$inject = [ 'eventBus' ]; inherits(BpmnAlignElements, RuleProvider); -BpmnAlignElements.prototype._init = function() { +BpmnAlignElements.prototype.init = function() { this.addRule('elements.align', function(context) { var elements = context.elements; From 870e623a35e97cf07bd790cf568dffa83690a897 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 17 Apr 2023 14:01:12 +0200 Subject: [PATCH 370/989] test: make layout test more forgiving --- test/spec/features/modeling/LabelLayoutingSpec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/spec/features/modeling/LabelLayoutingSpec.js b/test/spec/features/modeling/LabelLayoutingSpec.js index f7d0334e90..5163eb38ed 100644 --- a/test/spec/features/modeling/LabelLayoutingSpec.js +++ b/test/spec/features/modeling/LabelLayoutingSpec.js @@ -369,7 +369,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); } )); From a8bf3192a9f62083cfb902829fccd1a5f388da09 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 17 Apr 2023 18:09:56 +0200 Subject: [PATCH 371/989] fix(ElementFactory): fix @extend --- lib/features/modeling/ElementFactory.js | 46 ++++++++++++-------- lib/features/modeling/ElementFactory.test.ts | 25 ++++++++++- 2 files changed, 52 insertions(+), 19 deletions(-) diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index d9766ab476..ee297a8b60 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -50,7 +50,14 @@ import { */ /** - * A BPMN-aware factory for diagram elements. + * A BPMN-specific element factory. + * + * @template {BpmnConnection} [T=BpmnConnection] + * @template {BpmnLabel} [U=BpmnLabel] + * @template {BpmnRoot} [V=BpmnRoot] + * @template {BpmnShape} [W=BpmnShape] + * + * @extends {BaseElementFactory} * * @param {BpmnFactory} bpmnFactory * @param {Moddle} moddle @@ -80,7 +87,7 @@ ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create; * @overlord * @param {'root'} type * @param {Partial & Partial} [attrs] - * @return {BpmnRoot} + * @return {V} */ /** @@ -89,7 +96,7 @@ ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create; * @overlord * @param {'shape'} type * @param {Partial & Partial} [attrs] - * @return {BpmnShape} + * @return {W} */ /** @@ -98,7 +105,7 @@ ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create; * @overlord * @param {'connection'} type * @param {Partial & Partial} [attrs] - * @return {BpmnConnection} + * @return {T} */ /** @@ -106,7 +113,7 @@ ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create; * * @param {'label'} type * @param {Partial & Partial} [attrs] - * @return {BpmnLabel} + * @return {U} */ ElementFactory.prototype.create = function(elementType, attrs) { @@ -127,7 +134,7 @@ ElementFactory.prototype.create = function(elementType, attrs) { * @overlord * @param {'root'} elementType * @param {Partial & Partial} [attrs] - * @return {BpmnRoot} + * @return {V} */ /** @@ -136,7 +143,7 @@ ElementFactory.prototype.create = function(elementType, attrs) { * @overlord * @param {'shape'} elementType * @param {Partial & Partial} [attrs] - * @return {BpmnShape} + * @return {W} */ /** @@ -144,7 +151,7 @@ ElementFactory.prototype.create = function(elementType, attrs) { * * @param {'connection'} elementType * @param {Partial & Partial} [attrs] - * @return {BpmnConnection} + * @return {T} */ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { var size, @@ -316,10 +323,10 @@ ElementFactory.prototype.getDefaultSize = function(element, di) { /** * Create participant. * - * @param {boolean|Partial & Partial} [attrs] Attributes or whether the participant is - * expanded. + * @param {boolean|Partial & Partial} [attrs] + * Attributes or whether the participant is expanded. * - * @return {BpmnShape} The created participant. + * @return {W} The created participant. */ ElementFactory.prototype.createParticipantShape = function(attrs) { @@ -341,10 +348,10 @@ ElementFactory.prototype.createParticipantShape = function(attrs) { // helpers ////////////////////// /** - * Apply attributes from a map to the given element, - * remove attribute from the map on application. + * Apply attributes from a map to the given element, remove attribute from the + * map on application. * - * @param {Element} element + * @param {BpmnElement} element * @param {Object} attrs (in/out map of attributes) * @param {string[]} attributeNames name of attributes to apply * @@ -360,10 +367,9 @@ function applyAttributes(element, attrs, attributeNames) { } /** - * Apply named property to element and drain it from the attrs - * collection. + * Apply named property to element and drain it from the attrs collection. * - * @param {Element} element + * @param {BpmnElement} element * @param {Object} attrs (in/out map of attributes) * @param {string} attributeName to apply * @@ -379,7 +385,11 @@ function applyAttribute(element, attrs, attributeName) { return omit(attrs, [ attributeName ]); } - +/** + * @param {BpmnElement} element + * + * @return {boolean} + */ function isModdleDi(element) { return isAny(element, [ 'bpmndi:BPMNShape', diff --git a/lib/features/modeling/ElementFactory.test.ts b/lib/features/modeling/ElementFactory.test.ts index 40adcd3458..7c5e93aee0 100644 --- a/lib/features/modeling/ElementFactory.test.ts +++ b/lib/features/modeling/ElementFactory.test.ts @@ -2,6 +2,13 @@ import Modeler from '../../Modeler'; import ElementFactory from './ElementFactory'; +import { + BpmnConnection, + BpmnLabel, + BpmnRoot, + BpmnShape +} from '../../model/Types'; + const modeler = new Modeler(); const elementFactory = modeler.get('elementFactory'); @@ -107,4 +114,20 @@ elementFactory.createParticipantShape(true); elementFactory.createParticipantShape({ type: 'bpmn:Participant', isExpanded: true -}); \ No newline at end of file +}); + +/** + * Customization + */ + +type CustomShape = { + foo: string; +} & BpmnShape; + +class CustomElementFactory extends ElementFactory {}; + +const customElementFactory = modeler.get('elementFactory'); + +const customShape = customElementFactory.createShape({ foo: 'bar' }); + +console.log(customShape.foo); \ No newline at end of file From 9811bfc695e3fe621dc23619b4fa2f6479026965 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 17 Apr 2023 18:20:51 +0200 Subject: [PATCH 372/989] fix(Modeling): make generic --- lib/features/modeling/ElementFactory.test.ts | 2 +- lib/features/modeling/Modeling.js | 11 +++++-- lib/features/modeling/Modeling.test.ts | 33 +++++++++++++++++++- 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/lib/features/modeling/ElementFactory.test.ts b/lib/features/modeling/ElementFactory.test.ts index 7c5e93aee0..a035d1cac4 100644 --- a/lib/features/modeling/ElementFactory.test.ts +++ b/lib/features/modeling/ElementFactory.test.ts @@ -124,7 +124,7 @@ type CustomShape = { foo: string; } & BpmnShape; -class CustomElementFactory extends ElementFactory {}; +export class CustomElementFactory extends ElementFactory {}; const customElementFactory = modeler.get('elementFactory'); diff --git a/lib/features/modeling/Modeling.js b/lib/features/modeling/Modeling.js index 29d5721a8c..de02df8dc0 100644 --- a/lib/features/modeling/Modeling.js +++ b/lib/features/modeling/Modeling.js @@ -25,6 +25,7 @@ import UpdateLabelHandler from '../label-editing/cmd/UpdateLabelHandler'; * @typedef {import('../../model/Types').BpmnConnection} BpmnConnection * @typedef {import('../../model/Types').BpmnElement} BpmnElement * @typedef {import('../../model/Types').BpmnLabel} BpmnLabel + * @typedef {import('../../model/Types').BpmnParent} BpmnParent * @typedef {import('../../model/Types').BpmnRoot} BpmnRoot * @typedef {import('../../model/Types').BpmnShape} BpmnShape * @typedef {import('../../model/Types').ModdleElement} ModdleElement @@ -41,7 +42,13 @@ import UpdateLabelHandler from '../label-editing/cmd/UpdateLabelHandler'; /** * The BPMN 2.0 modeling entry point. * - * @extends {BaseModeling} + * @template {BpmnConnection} [T=BpmnConnection] + * @template {BpmnElement} [U=BpmnElement] + * @template {BpmnLabel} [V=BpmnLabel] + * @template {BpmnParent} [W=BpmnParent] + * @template {BpmnShape} [X=BpmnShape] + * + * @extends {BaseModeling} * * @param {EventBus} eventBus * @param {ElementFactory} elementFactory @@ -110,7 +117,7 @@ Modeling.prototype.updateLabel = function(element, newLabel, newBounds, hints) { * @param {Partial} attrs * @param {ModelingHints} [hints] * - * @return {BpmnConnection} + * @return {T} */ Modeling.prototype.connect = function(source, target, attrs, hints) { diff --git a/lib/features/modeling/Modeling.test.ts b/lib/features/modeling/Modeling.test.ts index ac5ae79b92..a52cb21c6f 100644 --- a/lib/features/modeling/Modeling.test.ts +++ b/lib/features/modeling/Modeling.test.ts @@ -6,6 +6,7 @@ import { BpmnConnection, BpmnElement, BpmnLabel, + BpmnParent, BpmnShape } from '../../model/Types'; @@ -14,6 +15,8 @@ import Modeling from './Modeling'; import { getBusinessObject } from '../../util/ModelUtil'; +import { CustomElementFactory } from './ElementFactory.test'; + const modeler = new Modeler(); const elementFactory = modeler.get('elementFactory'); @@ -114,4 +117,32 @@ modeling.moveShape(task, { x: 100, y: 100 }); modeling.moveConnection(sequenceFlow, { x: 100, y: 100 }); -modeling.moveElements([ subProcess, task ], { x: 100, y: 100 }); \ No newline at end of file +modeling.moveElements([ subProcess, task ], { x: 100, y: 100 }); + +/** + * Customization + */ + +type CustomElement = { + foo: string; +} & BpmnElement; + +type CustomShape = { + bar: string; +} & BpmnShape & CustomElement; + +class CustomModeling extends Modeling {}; + +const customModeling = modeler.get('modeling'); + +const customShape = customModeling.createShape({ bar: 'bar' }, { x: 100, y: 100 }, modeler.get('elementFactory').create('root')); + +customModeling.distributeElements([ + { + elements: [ customShape ], + range: { + min: 100, + max: 200 + } + } +], 'x', 'width'); \ No newline at end of file From 3ea28522216c0fd3e5fd89df10d6e1962172eaec Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 17 Apr 2023 18:30:40 +0200 Subject: [PATCH 373/989] chore: simplify element type names --- .../AlignElementsContextPadProvider.js | 4 +- lib/features/auto-place/BpmnAutoPlaceUtil.js | 18 +-- lib/features/auto-resize/BpmnAutoResize.js | 4 +- .../auto-resize/BpmnAutoResizeProvider.js | 6 +- .../context-pad/ContextPadProvider.js | 10 +- .../drilldown/DrilldownBreadcrumbs.js | 10 +- .../drilldown/DrilldownOverlayBehavior.js | 14 +- .../drilldown/SubprocessCompatibility.js | 4 +- .../BpmnInteractionEvents.js | 10 +- .../label-editing/LabelEditingProvider.js | 6 +- .../label-editing/cmd/UpdateLabelHandler.js | 6 +- lib/features/modeling/BpmnLayouter.js | 10 +- lib/features/modeling/BpmnUpdater.js | 34 ++--- lib/features/modeling/ElementFactory.js | 46 +++--- lib/features/modeling/ElementFactory.test.ts | 18 +-- lib/features/modeling/Modeling.js | 52 +++---- lib/features/modeling/Modeling.test.ts | 24 +-- .../AdaptiveLabelPositioningBehavior.js | 10 +- .../modeling/behavior/GroupBehavior.js | 10 +- .../modeling/behavior/ResizeBehavior.js | 4 +- .../behavior/RootElementReferenceBehavior.js | 4 +- .../modeling/behavior/SpaceToolBehavior.js | 8 +- .../behavior/SubProcessPlaneBehavior.js | 20 +-- .../ToggleCollapseConnectionBehaviour.js | 4 +- .../modeling/behavior/util/LabelLayoutUtil.js | 4 +- .../modeling/cmd/ResizeLaneHandler.js | 6 +- .../modeling/cmd/UpdateFlowNodeRefsHandler.js | 12 +- .../cmd/UpdateModdlePropertiesHandler.js | 4 +- .../modeling/cmd/UpdatePropertiesHandler.js | 10 +- lib/features/modeling/util/LaneUtil.js | 20 +-- lib/features/modeling/util/ModelingUtil.js | 6 +- .../popup-menu/ReplaceMenuProvider.js | 2 +- lib/features/popup-menu/util/TypeUtil.js | 4 +- lib/features/replace/BpmnReplace.js | 12 +- lib/features/rules/BpmnRules.js | 138 +++++++++--------- lib/features/snapping/BpmnConnectSnapping.js | 12 +- .../snapping/BpmnCreateMoveSnapping.js | 22 +-- lib/features/space-tool/BpmnSpaceTool.js | 4 +- lib/import/BpmnImporter.js | 16 +- lib/model/Types.ts | 24 +-- lib/util/DiUtil.js | 16 +- lib/util/DrilldownUtil.js | 8 +- lib/util/LabelUtil.js | 12 +- lib/util/ModelUtil.js | 10 +- .../custom-elements/CustomElementFactory.js | 8 +- test/spec/draw/BpmnRendererSpec.js | 4 +- .../features/copy-paste/BpmnCopyPasteSpec.js | 4 +- 47 files changed, 347 insertions(+), 347 deletions(-) diff --git a/lib/features/align-elements/AlignElementsContextPadProvider.js b/lib/features/align-elements/AlignElementsContextPadProvider.js index ef1c74821d..a3ed33ec39 100644 --- a/lib/features/align-elements/AlignElementsContextPadProvider.js +++ b/lib/features/align-elements/AlignElementsContextPadProvider.js @@ -10,7 +10,7 @@ import ICONS from './AlignElementsIcons'; * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').default} PopupMenu * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate * - * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').Element} Element * @typedef {import('diagram-js/lib/features/context-pad/ContextPad').ContextPadEntries} ContextPadEntries * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').default} ContextPadProvider */ @@ -45,7 +45,7 @@ AlignElementsContextPadProvider.$inject = [ ]; /** - * @param {BpmnElement[]} elements + * @param {Element[]} elements * * @return {ContextPadEntries} */ diff --git a/lib/features/auto-place/BpmnAutoPlaceUtil.js b/lib/features/auto-place/BpmnAutoPlaceUtil.js index 238ef7cbe4..761e8b8aba 100644 --- a/lib/features/auto-place/BpmnAutoPlaceUtil.js +++ b/lib/features/auto-place/BpmnAutoPlaceUtil.js @@ -14,7 +14,7 @@ import { } from 'diagram-js/lib/features/auto-place/AutoPlaceUtil'; /** - * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').Shape} Shape * * @typedef {import('diagram-js/lib/util/Types').Point} Point * @typedef {import('diagram-js/lib/util/Types').DirectionTRBL} DirectionTRBL @@ -24,8 +24,8 @@ import { * Get the position for given new target relative to the source it will be * connected to. * - * @param {BpmnShape} source - * @param {BpmnShape} element + * @param {Shape} source + * @param {Shape} element * * @return {Point} */ @@ -48,8 +48,8 @@ export function getNewShapePosition(source, element) { * Get the position for given new flow node. Try placing the flow node right of * the source. * - * @param {BpmnShape} source - * @param {BpmnShape} element + * @param {Shape} source + * @param {Shape} element * * @return {Point} */ @@ -112,8 +112,8 @@ function getVerticalDistance(orientation, minDistance) { * Get the position for given text annotation. Try placing the text annotation * top-right of the source. * - * @param {BpmnShape} source - * @param {BpmnShape} element + * @param {Shape} source + * @param {Shape} element * * @return {Point} */ @@ -147,8 +147,8 @@ export function getTextAnnotationPosition(source, element) { * Get the position for given new data element. Try placing the data element * bottom-right of the source. * - * @param {BpmnShape} source - * @param {BpmnShape} element + * @param {Shape} source + * @param {Shape} element * * @return {Point} */ diff --git a/lib/features/auto-resize/BpmnAutoResize.js b/lib/features/auto-resize/BpmnAutoResize.js index a864fa0727..05711e9e9d 100644 --- a/lib/features/auto-resize/BpmnAutoResize.js +++ b/lib/features/auto-resize/BpmnAutoResize.js @@ -7,7 +7,7 @@ import { is } from '../../util/ModelUtil'; /** * @typedef {import('didi').Injector} Injector * - * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').Shape} Shape * * @typedef {import('diagram-js/lib/util/Types').Rect} Rect */ @@ -31,7 +31,7 @@ inherits(BpmnAutoResize, AutoResize); /** * Perform BPMN-specific resizing of participants. * - * @param {BpmnShape} target + * @param {Shape} target * @param {Rect} newBounds * @param {Object} [hints] * @param {string} [hints.autoResize] diff --git a/lib/features/auto-resize/BpmnAutoResizeProvider.js b/lib/features/auto-resize/BpmnAutoResizeProvider.js index 2f228c5406..6803b5f4eb 100644 --- a/lib/features/auto-resize/BpmnAutoResizeProvider.js +++ b/lib/features/auto-resize/BpmnAutoResizeProvider.js @@ -12,7 +12,7 @@ import AutoResizeProvider from 'diagram-js/lib/features/auto-resize/AutoResizePr * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus * @typedef {import('../modeling/Modeling').default} Modeling * - * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').Shape} Shape */ /** @@ -38,8 +38,8 @@ BpmnAutoResizeProvider.$inject = [ /** * BPMN-specific check whether given elements can be resized. * - * @param {BpmnShape[]} elements - * @param {BpmnShape} target + * @param {Shape[]} elements + * @param {Shape} target * * @return {boolean} */ diff --git a/lib/features/context-pad/ContextPadProvider.js b/lib/features/context-pad/ContextPadProvider.js index 47b663140e..1c679aa66c 100644 --- a/lib/features/context-pad/ContextPadProvider.js +++ b/lib/features/context-pad/ContextPadProvider.js @@ -39,10 +39,10 @@ import { * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate * - * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').Element} Element * @typedef {import('../../model/Types').ModdleElement} ModdleElement * - * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').default} BaseContextPadProvider + * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').default} BaseContextPadProvider * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').ContextPadEntries} ContextPadEntries * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').ContextPadEntry} ContextPadEntry * @@ -125,7 +125,7 @@ ContextPadProvider.$inject = [ ]; /** - * @param {BpmnElement[]} elements + * @param {Element[]} elements * * @return {ContextPadEntries} */ @@ -153,7 +153,7 @@ ContextPadProvider.prototype.getMultiElementContextPadEntries = function(element }; /** - * @param {BpmnElement[]} elements + * @param {Element[]} elements * * @return {boolean} */ @@ -173,7 +173,7 @@ ContextPadProvider.prototype._isDeleteAllowed = function(elements) { }; /** - * @param {BpmnElement} element + * @param {Element} element * * @return {ContextPadEntries} */ diff --git a/lib/features/drilldown/DrilldownBreadcrumbs.js b/lib/features/drilldown/DrilldownBreadcrumbs.js index 8255353454..40b2dc030f 100644 --- a/lib/features/drilldown/DrilldownBreadcrumbs.js +++ b/lib/features/drilldown/DrilldownBreadcrumbs.js @@ -12,8 +12,8 @@ import { * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus * - * @typedef {import('../../model/Types').BpmnElement} BpmnElement - * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').Element} Element + * @typedef {import('../../model/Types').Shape} Shape */ var OPEN_CLASS = 'bjs-breadcrumbs-shown'; @@ -54,7 +54,7 @@ export default function DrilldownBreadcrumbs(eventBus, elementRegistry, canvas) * Updates the displayed breadcrumbs. If no element is provided, only the * labels are updated. * - * @param {BpmnElement} [element] + * @param {Element} [element] */ function updateBreadcrumbs(element) { if (element) { @@ -113,9 +113,9 @@ DrilldownBreadcrumbs.$inject = [ 'eventBus', 'elementRegistry', 'canvas' ]; * Returns the parents for the element using the business object chain, * starting with the root element. * - * @param {BpmnShape} child + * @param {Shape} child * - * @return {BpmnShape} + * @return {Shape} */ function getBusinessObjectParentChain(child) { var businessObject = getBusinessObject(child); diff --git a/lib/features/drilldown/DrilldownOverlayBehavior.js b/lib/features/drilldown/DrilldownOverlayBehavior.js index 07d1f5acec..5c2e8bb9d9 100644 --- a/lib/features/drilldown/DrilldownOverlayBehavior.js +++ b/lib/features/drilldown/DrilldownOverlayBehavior.js @@ -11,9 +11,9 @@ import { getPlaneIdFromShape } from '../../util/DrilldownUtil'; * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus * @typedef {import('diagram-js/lib/features/overlays/Overlays').default} Overlays * - * @typedef {import('../../model/Types').BpmnElement} BpmnElement - * @typedef {import('../../model/Types').BpmnParent} BpmnParent - * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').Element} Element + * @typedef {import('../../model/Types').Parent} Parent + * @typedef {import('../../model/Types').Shape} Shape */ var LOW_PRIORITY = 250; @@ -110,7 +110,7 @@ export default function DrilldownOverlayBehavior( inherits(DrilldownOverlayBehavior, CommandInterceptor); /** - * @param {BpmnShape} shape + * @param {Shape} shape */ DrilldownOverlayBehavior.prototype._updateDrilldownOverlay = function(shape) { var canvas = this._canvas; @@ -127,7 +127,7 @@ DrilldownOverlayBehavior.prototype._updateDrilldownOverlay = function(shape) { }; /** - * @param {BpmnElement} element + * @param {Element} element * * @return {boolean} */ @@ -141,7 +141,7 @@ DrilldownOverlayBehavior.prototype._canDrillDown = function(element) { * Update the visibility of the drilldown overlay. If the plane has no elements, * the drilldown will only be shown when the element is selected. * - * @param {BpmnParent} element The collapsed root or shape. + * @param {Parent} element The collapsed root or shape. */ DrilldownOverlayBehavior.prototype._updateOverlayVisibility = function(element) { var overlays = this._overlays; @@ -165,7 +165,7 @@ DrilldownOverlayBehavior.prototype._updateOverlayVisibility = function(element) * Add a drilldown button to the given element assuming the plane has the same * ID as the element. * - * @param {BpmnShape} element The collapsed shape. + * @param {Shape} element The collapsed shape. */ DrilldownOverlayBehavior.prototype._addOverlay = function(element) { var canvas = this._canvas, diff --git a/lib/features/drilldown/SubprocessCompatibility.js b/lib/features/drilldown/SubprocessCompatibility.js index 62305db7d2..3cfcda8730 100644 --- a/lib/features/drilldown/SubprocessCompatibility.js +++ b/lib/features/drilldown/SubprocessCompatibility.js @@ -6,8 +6,8 @@ import { is, isAny } from '../../util/ModelUtil'; * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus * @typedef {import('../../model/Types').Moddle} Moddle * - * @typedef {import('../../model/Types').BpmnElement} BpmnElement - * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').Element} Element + * @typedef {import('../../model/Types').Shape} Shape * * @typedef {import('diagram-js/lib/core/Canvas').CanvasPlane} CanvasPlane * diff --git a/lib/features/interaction-events/BpmnInteractionEvents.js b/lib/features/interaction-events/BpmnInteractionEvents.js index 0502aa4c5a..652b08591b 100644 --- a/lib/features/interaction-events/BpmnInteractionEvents.js +++ b/lib/features/interaction-events/BpmnInteractionEvents.js @@ -6,8 +6,8 @@ import { isExpanded } from '../../util/DiUtil'; * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus * @typedef {import('diagram-js/lib/features/interaction-events/InteractionEvents').default} InteractionEvents * - * @typedef {import('../../model/Types').BpmnElement} BpmnElement - * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').Element} Element + * @typedef {import('../../model/Types').Shape} Shape */ var LABEL_WIDTH = 30, @@ -62,7 +62,7 @@ BpmnInteractionEvents.$inject = [ ]; /** - * @param {BpmnElement} element + * @param {Element} element * @param {SVGElement} gfx * * @return {boolean} @@ -77,7 +77,7 @@ BpmnInteractionEvents.prototype._createDefaultHit = function(element, gfx) { }; /** - * @param {BpmnShape} element + * @param {Shape} element * @param {SVGElement} gfx * * @return {boolean} @@ -110,7 +110,7 @@ BpmnInteractionEvents.prototype._createParticipantHit = function(element, gfx) { }; /** - * @param {BpmnShape} element + * @param {Shape} element * @param {SVGElement} gfx * * @return {boolean} diff --git a/lib/features/label-editing/LabelEditingProvider.js b/lib/features/label-editing/LabelEditingProvider.js index 25a3918c6e..eb1e736ca5 100644 --- a/lib/features/label-editing/LabelEditingProvider.js +++ b/lib/features/label-editing/LabelEditingProvider.js @@ -29,7 +29,7 @@ import { * @typedef {import('diagram-js/lib/features/resize/ResizeHandles').default} ResizeHandles * @typedef {import('../../draw/TextRenderer').default} TextRenderer * - * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').Element} Element * * @typedef { { * bounds: { @@ -168,7 +168,7 @@ LabelEditingProvider.$inject = [ /** * Activate direct editing for activities and text annotations. * - * @param {BpmnElement} element + * @param {Element} element * * @return { { * text: string; @@ -240,7 +240,7 @@ LabelEditingProvider.prototype.activate = function(element) { /** * Get the editing bounding box based on the element's size and position. * - * @param {BpmnElement} element + * @param {Element} element * * @return {DirectEditingContext} */ diff --git a/lib/features/label-editing/cmd/UpdateLabelHandler.js b/lib/features/label-editing/cmd/UpdateLabelHandler.js index 1f913b2085..f421a6328b 100644 --- a/lib/features/label-editing/cmd/UpdateLabelHandler.js +++ b/lib/features/label-editing/cmd/UpdateLabelHandler.js @@ -25,7 +25,7 @@ var NULL_DIMENSIONS = { * @typedef {import('../../../draw/TextRenderer').default} TextRenderer * @typedef {import('../../modeling/BpmnFactory').default} BpmnFactory * - * @typedef {import('../../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../../model/Types').Element} Element */ /** @@ -40,7 +40,7 @@ export default function UpdateLabelHandler(modeling, textRenderer, bpmnFactory) /** * Creates an empty `diLabel` attribute for embedded labels. * - * @param {BpmnElement} element + * @param {Element} element * @param {string} text */ function ensureInternalLabelDi(element, text) { @@ -65,7 +65,7 @@ export default function UpdateLabelHandler(modeling, textRenderer, bpmnFactory) * * Element parameter can be label itself or connection (i.e. sequence flow). * - * @param {BpmnElement} element + * @param {Element} element * @param {string} text */ function setText(element, text) { diff --git a/lib/features/modeling/BpmnLayouter.js b/lib/features/modeling/BpmnLayouter.js index 2f547ac96f..be6c583342 100644 --- a/lib/features/modeling/BpmnLayouter.js +++ b/lib/features/modeling/BpmnLayouter.js @@ -25,14 +25,14 @@ import { is } from '../../util/ModelUtil'; /** * @typedef {import('diagram-js/lib/util/Types').Point} Point * - * @typedef {import('../../model/Types').BpmnConnection} BpmnConnection - * @typedef {import('../../model/Types').BpmnElement} BpmnElement + * @typedef {import('../../model/Types').Connection} Connection + * @typedef {import('../../model/Types').Element} Element * * @typedef {import('diagram-js/lib/layout/BaseLayouter').LayoutConnectionHints} LayoutConnectionHints * * @typedef { { - * source?: BpmnElement; - * target?: BpmnElement; + * source?: Element; + * target?: Element; * waypoints?: Point[]; * connectionStart?: Point; * connectionEnd?: Point; @@ -67,7 +67,7 @@ inherits(BpmnLayouter, BaseLayouter); /** * Returns waypoints of laid out connection. * - * @param {BpmnConnection} connection + * @param {Connection} connection * @param {BpmnLayoutConnectionHints} [hints] * * @return {Point[]} diff --git a/lib/features/modeling/BpmnUpdater.js b/lib/features/modeling/BpmnUpdater.js index 99fb4d59b3..be058a5349 100644 --- a/lib/features/modeling/BpmnUpdater.js +++ b/lib/features/modeling/BpmnUpdater.js @@ -30,10 +30,10 @@ import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; * @typedef {import('diagram-js/lib/layout/CroppingConnectionDocking').default} CroppingConnectionDocking * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate * - * @typedef {import('../../model/Types').BpmnConnection} BpmnConnection - * @typedef {import('../../model/Types').BpmnElement} BpmnElement - * @typedef {import('../../model/Types').BpmnShape} BpmnShape - * @typedef {import('../../model/Types').BpmnParent} BpmnParent + * @typedef {import('../../model/Types').Connection} Connection + * @typedef {import('../../model/Types').Element} Element + * @typedef {import('../../model/Types').Shape} Shape + * @typedef {import('../../model/Types').Parent} Parent * @typedef {import('../../model/Types').ModdleElement} ModdleElement */ @@ -303,8 +303,8 @@ BpmnUpdater.$inject = [ /** * @param { { - * shape: BpmnShape; - * host: BpmnShape; + * shape: Shape; + * host: Shape; * } } context */ BpmnUpdater.prototype.updateAttachment = function(context) { @@ -317,8 +317,8 @@ BpmnUpdater.prototype.updateAttachment = function(context) { }; /** - * @param {BpmnElement} element - * @param {BpmnParent} oldParent + * @param {Element} element + * @param {Parent} oldParent */ BpmnUpdater.prototype.updateParent = function(element, oldParent) { @@ -371,7 +371,7 @@ BpmnUpdater.prototype.updateParent = function(element, oldParent) { }; /** - * @param {BpmnShape} shape + * @param {Shape} shape */ BpmnUpdater.prototype.updateBounds = function(shape) { @@ -430,9 +430,9 @@ BpmnUpdater.prototype.updateFlowNodeRefs = function(businessObject, newContainme }; /** - * @param {BpmnConnection} connection - * @param {BpmnElement} newSource - * @param {BpmnElement} newTarget + * @param {Connection} connection + * @param {Element} newSource + * @param {Element} newTarget */ BpmnUpdater.prototype.updateDiConnection = function(connection, newSource, newTarget) { var connectionDi = getDi(connection), @@ -686,7 +686,7 @@ BpmnUpdater.prototype.updateSemanticParent = function(businessObject, newParent, }; /** - * @param {BpmnConnection} connection + * @param {Connection} connection */ BpmnUpdater.prototype.updateConnectionWaypoints = function(connection) { var di = getDi(connection); @@ -696,9 +696,9 @@ BpmnUpdater.prototype.updateConnectionWaypoints = function(connection) { /** * @param { { - * connection: BpmnConnection; - * parent: BpmnParent; - * newParent: BpmnParent; + * connection: Connection; + * parent: Parent; + * newParent: Parent; * } } context */ BpmnUpdater.prototype.updateConnection = function(context) { @@ -798,7 +798,7 @@ function ifBpmn(fn) { /** * Return dc:Bounds of bpmndi:BPMNLabel if exists. * - * @param {BpmnShape} shape + * @param {Shape} shape * * @return {ModdleElement|undefined} */ diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index ee297a8b60..f4ad0b0781 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -40,11 +40,11 @@ import { * @typedef {import('./BpmnFactory').default} BpmnFactory * * @typedef {import('../../model/Types').BpmnAttributes} BpmnAttributes - * @typedef {import('../../model/Types').BpmnConnection} BpmnConnection - * @typedef {import('../../model/Types').BpmnElement} BpmnElement - * @typedef {import('../../model/Types').BpmnLabel} BpmnLabel - * @typedef {import('../../model/Types').BpmnRoot} BpmnRoot - * @typedef {import('../../model/Types').BpmnShape} BpmnShape + * @typedef {import('../../model/Types').Connection} Connection + * @typedef {import('../../model/Types').Element} Element + * @typedef {import('../../model/Types').Label} Label + * @typedef {import('../../model/Types').Root} Root + * @typedef {import('../../model/Types').Shape} Shape * @typedef {import('../../model/Types').Moddle} Moddle * @typedef {import('../../model/Types').ModdleElement} ModdleElement */ @@ -52,10 +52,10 @@ import { /** * A BPMN-specific element factory. * - * @template {BpmnConnection} [T=BpmnConnection] - * @template {BpmnLabel} [U=BpmnLabel] - * @template {BpmnRoot} [V=BpmnRoot] - * @template {BpmnShape} [W=BpmnShape] + * @template {Connection} [T=Connection] + * @template {Label} [U=Label] + * @template {Root} [V=Root] + * @template {Shape} [W=Shape] * * @extends {BaseElementFactory} * @@ -86,7 +86,7 @@ ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create; * * @overlord * @param {'root'} type - * @param {Partial & Partial} [attrs] + * @param {Partial & Partial} [attrs] * @return {V} */ @@ -95,7 +95,7 @@ ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create; * * @overlord * @param {'shape'} type - * @param {Partial & Partial} [attrs] + * @param {Partial & Partial} [attrs] * @return {W} */ @@ -104,7 +104,7 @@ ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create; * * @overlord * @param {'connection'} type - * @param {Partial & Partial} [attrs] + * @param {Partial & Partial} [attrs] * @return {T} */ @@ -112,7 +112,7 @@ ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create; * Create a label. * * @param {'label'} type - * @param {Partial & Partial} [attrs] + * @param {Partial